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

C#中前臺線程和后臺線程的區(qū)別與聯(lián)系

 更新時間:2015年06月17日 10:49:28   投稿:junjie  
這篇文章主要介紹了C#中前臺線程和后臺線程的區(qū)別與聯(lián)系,本文先講解了它們的區(qū)別,然后給出了一個例子來驗證這些區(qū)別,需要的朋友可以參考下

前臺線程和后臺線程的區(qū)別和聯(lián)系:

1、后臺線程不會阻止進(jìn)程的終止。屬于某個進(jìn)程的所有前臺線程都終止后,該進(jìn)程就會被終止。所有剩余的后臺線程都會停止且不會完成。

2、可以在任何時候?qū)⑶芭_線程修改為后臺線程,方式是設(shè)置Thread.IsBackground 屬性。

3、不管是前臺線程還是后臺線程,如果線程內(nèi)出現(xiàn)了異常,都會導(dǎo)致進(jìn)程的終止。

4、托管線程池中的線程都是后臺線程,使用new Thread方式創(chuàng)建的線程默認(rèn)都是前臺線程。

 

下面做個小例子來證實一下,代碼如下很簡單:

class Program
  {
static AutoResetEvent autoEvent =new AutoResetEvent(false);

staticvoid Main()
    {
      Thread newThread =new Thread(new ThreadStart(ThreadMethod));
//newThread.IsBackground = true;
      Console.WriteLine("主線程開始執(zhí)行。");
      newThread.Start();

      Console.WriteLine("主線程結(jié)束");
    }

staticvoid ThreadMethod()
    {
//掛起子線程 
      autoEvent.WaitOne();
      
      Console.WriteLine("子線程執(zhí)行");
    }
  }

我在第9行下了個斷點,來看一下通過 new Thread方式創(chuàng)建的線程的IsBackground屬性,截圖如下:


可見通過new Thread方式創(chuàng)建的線程,確實是默認(rèn)為前臺線程。
 

程序運行的結(jié)果如下圖:

該控制太程序沒有像平時一樣自動關(guān)閉,而使一直停在那里。并且我們從圖中可以看到主線程執(zhí)行完了,而子線程(前臺線程)并沒有執(zhí)行完(因為被autoEvent.WaitOne()方法掛起了)。

這就說明了前臺線程是可以阻止進(jìn)程的終止的。

如果將第8行的注釋去掉的話,控制臺程序?qū)⒆詣咏K止,大家可以試一下。

相關(guān)文章

  • C#中yield return用法分析

    C#中yield return用法分析

    這篇文章主要介紹了C#中yield return用法,對比使用yield return與不使用yield return的流程,更直觀的分析了yield return的用法,需要的朋友可以參考下
    2014-09-09
  • C#中讀寫INI文件的方法例子

    C#中讀寫INI文件的方法例子

    C#中讀寫INI文件的方法例子,需要的朋友可以參考一下
    2013-05-05
  • C#生成帶注釋的dll并引用實現(xiàn)

    C#生成帶注釋的dll并引用實現(xiàn)

    本文主要介紹了C#生成帶注釋的dll并引用實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • C# DataTable與Model互轉(zhuǎn)的示例代碼

    C# DataTable與Model互轉(zhuǎn)的示例代碼

    這篇文章主要介紹了C#DataTable與Model互轉(zhuǎn)的示例代碼,幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2020-12-12
  • 再議C#中的裝箱與拆箱的問題詳解

    再議C#中的裝箱與拆箱的問題詳解

    本篇文章再次介紹了C#中的裝箱與拆箱,這次們看下使用泛型和不使用泛型引發(fā)裝箱拆箱的情況
    2013-05-05
  • C#實現(xiàn)操作PPT動畫窗格并插入音頻文件

    C#實現(xiàn)操作PPT動畫窗格并插入音頻文件

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)操作PPT動畫窗格并插入音頻文件,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-10-10
  • C#運算符重載用法實例分析

    C#運算符重載用法實例分析

    這篇文章主要介紹了C#運算符重載用法,實例分析了C#中運算符重載的基本實現(xiàn)與使用技巧,需要的朋友可以參考下
    2015-07-07
  • 基于C#實現(xiàn)手機號碼歸屬地接口調(diào)用

    基于C#實現(xiàn)手機號碼歸屬地接口調(diào)用

    這篇文章主要介紹了基于C#實現(xiàn)手機號碼歸屬地接口調(diào)用的相關(guān)資料,需要的朋友可以參考下
    2016-02-02
  • ZooKeeper的安裝及部署教程

    ZooKeeper的安裝及部署教程

    Zookeeper是一個針對大型分布式系統(tǒng)的可靠協(xié)調(diào)系統(tǒng),提供的功能包括:配置維護(hù)、名字服務(wù)、分布式同步、組服務(wù)等,這篇文章主要介紹了ZooKeeper的安裝及部署,需要的朋友可以參考下
    2019-06-06
  • C#遞歸應(yīng)用之實現(xiàn)JS文件的自動引用

    C#遞歸應(yīng)用之實現(xiàn)JS文件的自動引用

    這篇文章主要為大家詳細(xì)介紹了C#如何利用遞歸實現(xiàn)JS文件的自動引用的功能,文中的示例代碼講解詳細(xì),具有一定的參考價值,需要的可以參考一下
    2023-03-03

最新評論