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

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

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

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

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

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

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

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

 

下面做個(gè)小例子來證實(shí)一下,代碼如下很簡單:

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行下了個(gè)斷點(diǎn),來看一下通過 new Thread方式創(chuàng)建的線程的IsBackground屬性,截圖如下:


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

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

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

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

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

相關(guān)文章

最新評論

唐河县| 宜州市| 涿鹿县| 岢岚县| 花莲市| 襄垣县| 康马县| 关岭| 浦江县| 晋江市| 朔州市| 土默特左旗| 博客| 义马市| 祁门县| 庐江县| 罗甸县| 临澧县| 东辽县| 宁强县| 红安县| 临朐县| 福泉市| 南充市| 大竹县| 恭城| 盐亭县| 博野县| 六安市| 宜昌市| 久治县| 武邑县| 方城县| 阳高县| 伊通| 横峰县| 宾川县| 客服| 阳江市| 陕西省| 岳普湖县|