[Thread] 背景執行緒與前景執行緒的差別

来源:互联网 发布:pop3协议端口 编辑:程序博客网 时间:2024/05/17 01:58

http://www.dotblogs.com.tw/yc421206/archive/2011/01/04/20574.aspx


執行緒可分為前景執行緒與背景執行緒兩種,在預設的狀況下Thread是屬於前景執行緒也就是Thread.IsBackground=false,那這兩種執行緒差在哪裡呢?

若主程序已下達中止工作命令了,有任一前景執行緒尚未完成工作,程序不會立即中止,需待前景執行緒完成工作後才會終止。

反之,背景執行緒不管工作有沒有完成,一但收到中止命令,馬上就停下手邊的工作中止工作。

我們來用程式碼觀察其結果,程式碼出自http://msdn.microsoft.com/zh-tw/library/system.threading.thread.aspx

image

執行結果,當我按下任意鍵了,程序卻沒停止還在繼續工作

image

當我解開了註解t.IsBackground = true;

按下任意鍵後,便能立即離開程序,至於該用哪種執行緒就看個人需求了。