最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

什么是進(jìn)程?

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

什么是線程?

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

什么是多線程?

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

個(gè)人總結(jié)

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

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

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

在C#中開啟一個(gè)線程,來(lái)執(zhí)行我們所寫的方法。主要是通過(guò)ThreadStart代理委托來(lái)實(shí)現(xiàn)。下面寫一些簡(jiǎ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)前子線程為后臺(tái)線程,為后臺(tái)線程意味著,主線程關(guān)閉后,其他子線程都同時(shí)關(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">只能定義一個(gè)object參數(shù),因?yàn)槲蠵arameterizedThreadStart為單參數(shù)object類型</param>
        static void ThreadMethodParameter(object Parameter)
        {
            for (int j = 0; j < 10; j++)
            {
                Console.WriteLine("B"+Parameter);
            }
        }
 
    }
}

在代理里分別開啟兩個(gè)線程。

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

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

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

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

Main Write:M 為主線程打印。

A:為線程ThreadA打印。

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

相關(guān)文章

  • C#程序中類數(shù)量對(duì)程序啟動(dòng)的影響詳解

    C#程序中類數(shù)量對(duì)程序啟動(dòng)的影響詳解

    這篇文章主要給大家介紹了關(guān)于C#程序中類數(shù)量對(duì)程序啟動(dòng)的影響的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • C#使用符號(hào)表實(shí)現(xiàn)查找算法

    C#使用符號(hào)表實(shí)現(xiàn)查找算法

    本文詳細(xì)講解了C#使用符號(hào)表實(shí)現(xiàn)查找算法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-04-04
  • 基于WPF實(shí)現(xiàn)瀑布流控件

    基于WPF實(shí)現(xiàn)瀑布流控件

    這篇文章主要介紹了如何基于WPF實(shí)現(xiàn)簡(jiǎn)單的瀑布流控件,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定幫助,需要的小伙伴可以參考一下
    2024-02-02
  • 基于WPF實(shí)現(xiàn)3D導(dǎo)航欄控件

    基于WPF實(shí)現(xiàn)3D導(dǎo)航欄控件

    這篇文章主要介紹了如何基于WPF實(shí)現(xiàn)簡(jiǎn)單的3D導(dǎo)航欄控件效果,文中的示例代碼講解詳細(xì),對(duì)我們的學(xué)習(xí)或工作有一定幫助,需要的小伙伴可以參考一下
    2024-03-03
  • C#實(shí)現(xiàn)生成所有不重復(fù)的組合功能示例

    C#實(shí)現(xiàn)生成所有不重復(fù)的組合功能示例

    這篇文章主要介紹了C#實(shí)現(xiàn)生成所有不重復(fù)的組合功能,涉及C#數(shù)學(xué)運(yùn)算中組合數(shù)運(yùn)算的相關(guān)原理應(yīng)用操作技巧,需要的朋友可以參考下
    2017-12-12
  • C# String字符串案例詳解

    C# String字符串案例詳解

    這篇文章主要介紹了C# String字符串案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C#漢字轉(zhuǎn)拼音實(shí)例(支持多音字)

    C#漢字轉(zhuǎn)拼音實(shí)例(支持多音字)

    幾年前就在網(wǎng)上看到過(guò)漢字轉(zhuǎn)拼音的程序,大都就是按漢字的編碼轉(zhuǎn)換,單字對(duì)應(yīng)的算法實(shí)現(xiàn)的。但是都有一個(gè)共同的缺點(diǎn),不能支持多音字。本篇文章主要介紹了C#漢字轉(zhuǎn)拼音實(shí)例(支持多音字),有興趣的可以了解一下。
    2016-12-12
  • Winform項(xiàng)目中TextBox控件DataBindings屬性

    Winform項(xiàng)目中TextBox控件DataBindings屬性

    這篇文章介紹了Winform項(xiàng)目中TextBox控件DataBindings屬性的用法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • 利用C#修改Windows操作系統(tǒng)時(shí)間

    利用C#修改Windows操作系統(tǒng)時(shí)間

    這篇文章主要介紹了利用C#修改Windows操作系統(tǒng)時(shí)間,幫助大家更好的利用c#操作系統(tǒng),感興趣的朋友可以了解下
    2020-10-10
  • Unity實(shí)現(xiàn)倒計(jì)時(shí)功能

    Unity實(shí)現(xiàn)倒計(jì)時(shí)功能

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)倒計(jì)時(shí)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05

最新評(píng)論

南开区| 泰来县| 甘南县| 蓝山县| 司法| 临夏县| 大悟县| 赣榆县| 景东| 福海县| 聂拉木县| 淅川县| 普定县| 志丹县| 光泽县| 上栗县| 古田县| 弋阳县| 于都县| 桃园县| 黑水县| 柘荣县| 扶绥县| 双城市| 牙克石市| 同江市| 新兴县| 荣昌县| 肃南| 高碑店市| 民乐县| 浦城县| 登封市| 聂拉木县| 大连市| 赤水市| 平南县| 广东省| 蓝田县| 葵青区| 姚安县|