【轉】前台和后台線程


資料來源:http://www.cnblogs.com/leonjoon/archive/2008/07/19/1246791.html

     使用Thread建立的線程默認情況下是前台線程,在進程中,只要有一個前台線程未退出,進程就不會終止。主線程就是一個前台線程。而后台線程不管線程是否結束,只要所有的前台線程都退出(包括正常退出和異常退出)后,進程就會自動終止。一般后台線程用於處理時間較短的任務,如在一個Web服務器中可以利用后台線程來處理客戶端發過來的請求信息。而前台線程一般用於處理需要長時間等待的任務,如在Web服務器中的監聽客戶端請求的程序,或是定時對某些系統資源進行掃描的程序。下面的代碼演示了前台和后台線程的區別。

public static void myStaticThreadMethod()
{
    Thread.Sleep(3000);
}
Thread thread = new Thread(myStaticThreadMethod);
// thread.IsBackground = true;
thread.Start()
如果運行上面的代碼,程序會等待3秒后退出,如果將注釋去掉,將thread設成后台線程,則程序會立即退出
要注意的是,必須在調用Start方法之前設置線程的類型,否則一但線程運行,將無法改變其類型
通過BeginXXX方法運行的線程都是后台線程


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com