欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#線程入門教程之單線程介紹

 更新時間:2015年02月26日 10:27:01   投稿:junjie  
這篇文章主要介紹了C#線程入門教程之單線程介紹,本文講解了什么是進(jìn)程、什么是線程、什么是多線程等內(nèi)容,并給出了一個單線程代碼示例,需要的朋友可以參考下

什么是進(jìn)程?

當(dāng)一個程序被打開運(yùn)行時,它就是一個進(jìn)程。在進(jìn)程中包括線程,進(jìn)程可以由一個或多個線程組成。

什么是線程?

線程是程序執(zhí)行流的最小單元。一個標(biāo)準(zhǔn)的線程由線程ID,當(dāng)前指令指針(PC),寄存器集合和堆棧組成。

什么是多線程?

多線程是指程序中包含多個執(zhí)行流,即在一個程序中可以同時運(yùn)行多個不同的線程來執(zhí)行不同的任務(wù),也就是說允許單個程序創(chuàng)建多個并行執(zhí)行的線程來完成各自的任務(wù)。

個人總結(jié)

在C#中我們開啟一個應(yīng)用程序就是打開了一個進(jìn)程,這個進(jìn)程中包括一個主線程。我們可以在此基礎(chǔ)上在增加自己寫的單個或多個線程,來執(zhí)行我們想要完成的任務(wù)。

在Thread線程類中我們常用到的一樣方法:

Start():啟動線程;
Sleep(int):靜態(tài)方法,暫停當(dāng)前線程指定的毫秒數(shù);
Abort():通常使用該方法來終止一個線程;
Suspend():該方法并不終止未完成的線程,它僅僅掛起線程,以后還可恢復(fù);
Resume():恢復(fù)被Suspend()方法掛起的線程的執(zhí)行。

在C#中開啟一個線程,來執(zhí)行我們所寫的方法。主要是通過ThreadStart代理委托來實現(xiàn)。下面寫一些簡單代碼示例。

代碼示例

單線程:

復(fù)制代碼 代碼如下:

using System;
using System.Threading;
 
namespace StudyThread
{
    class Program
    {
        static void Main(string[] args)
        {
            OneThread();
        }
 
        static void OneThread()
        {
            Thread threadA = new Thread(ThreadMethod);
            threadA.IsBackground = true;   //設(shè)置當(dāng)前子線程為后臺線程,為后臺線程意味著,主線程關(guān)閉后,其他子線程都同時關(guān)閉
            threadA.Start();
 
            object ThreadParameter = "P";
            Thread threadB = new Thread(new ParameterizedThreadStart(ThreadMethodParameter));
            threadB.IsBackground = true;
            threadB.Start(ThreadParameter);
 
            Console.WriteLine("Main Write:M");
            Console.ReadLine();
        }
 
        static void ThreadMethod()
        {
            for (int i = 0; i < 10; i++)
            {
                Console.WriteLine("A");
            }
        }
 
        /// <summary>
        /// 帶參數(shù)線程
        /// </summary>
        /// <param name="Parameter">只能定義一個object參數(shù),因為委托ParameterizedThreadStart為單參數(shù)object類型</param>
        static void ThreadMethodParameter(object Parameter)
        {
            for (int j = 0; j < 10; j++)
            {
                Console.WriteLine("B"+Parameter);
            }
        }
 
    }
}

在代理里分別開啟兩個線程。

第一個線程ThreadA沒帶參數(shù),線程運(yùn)行時去執(zhí)行ThreadMethod()方法.

第二個線程ThreadB帶上一個Object參數(shù),通過ParameterizedThreadStart委托去執(zhí)行ThreadMethodParameter(object Parameter)方法.此線程在調(diào)用Start()時傳入所需參數(shù)。

(寫代碼時我在想為什么帶參數(shù)線程只能傳一個object參數(shù)?看了代碼才知道ParameterizedThreadStart只有一個參數(shù)沒有重載)。

執(zhí)行結(jié)果:

Main Write:M 為主線程打印。

A:為線程ThreadA打印。

BP:為帶參數(shù)線程ThreadB打印。

相關(guān)文章

  • 提示出現(xiàn)unresolved external symbol _main的解決方法

    提示出現(xiàn)unresolved external symbol _main的解決方法

    提示出現(xiàn)unresolved external symbol _main的解決方法...
    2007-11-11
  • C#生成隨機(jī)字符串的實例

    C#生成隨機(jī)字符串的實例

    本文介紹了“C#生成隨機(jī)字符串的實例”,需要的朋友可以參考一下
    2013-03-03
  • Parallel.For循環(huán)與普通for循環(huán)的性能比較

    Parallel.For循環(huán)與普通for循環(huán)的性能比較

    這篇文章介紹了Parallel.For循環(huán)與普通for循環(huán)的性能比較,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • c#委托詳解和和示例分享

    c#委托詳解和和示例分享

    這篇文章詳細(xì)探討了C#中的委托,列舉其主要的實現(xiàn)方式,并分析其在設(shè)計層面和編碼層面帶來的好處,最后會討論其安全性和執(zhí)行效率等,當(dāng)然還有實現(xiàn)示例
    2014-03-03
  • 解析C# 程序結(jié)構(gòu)

    解析C# 程序結(jié)構(gòu)

    在我們學(xué)習(xí) C# 編程語言的基礎(chǔ)構(gòu)件塊之前,讓我們先看一下 C# 的最小的程序結(jié)構(gòu),以便作為接下來章節(jié)的參考
    2021-07-07
  • 淺析C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別

    淺析C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別

    C#靜態(tài)方法與非靜態(tài)方法的區(qū)別不僅僅是概念上的,那么他們有什么具體的區(qū)別呢?讓我們通過本文向大家介紹下C#中靜態(tài)方法和非靜態(tài)方法的區(qū)別,一起看看吧
    2017-09-09
  • C#如何從byte[]中直接讀取Structure實例詳解

    C#如何從byte[]中直接讀取Structure實例詳解

    這篇文章主要給大家介紹了關(guān)于利用C#如何從byte[]里直接讀取Structure的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • C#中實現(xiàn)Json序列化與反序列化的幾種方式

    C#中實現(xiàn)Json序列化與反序列化的幾種方式

    C#中實現(xiàn)Json的序列化與反序列化也算是個老話題,那么在這篇文章中我們將老話重提,本文中將會學(xué)到如何使用C#,來序列化對象成為Json格式的數(shù)據(jù),以及如何反序列化Json數(shù)據(jù)到對象。有需要的朋友們可以參考借鑒,下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2016-12-12
  • C#使用OpenCvSharp4實現(xiàn)讀取本地視頻

    C#使用OpenCvSharp4實現(xiàn)讀取本地視頻

    OpenCvSharp4庫是一個基于.Net封裝的OpenCV庫,這篇文章主要介紹了C#使用OpenCvSharp4實現(xiàn)讀取本地視頻的詳細(xì)教程,有需要的小伙伴可以參考下
    2024-01-01
  • unity實現(xiàn)QQ截圖功能

    unity實現(xiàn)QQ截圖功能

    這篇文章主要為大家詳細(xì)介紹了unity實現(xiàn)QQ截圖功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04

最新評論