c#中的執行緒分為兩類:前台執行緒與後台執行緒
後台執行緒——不會阻止程序結束;所有前台執行緒結束之後,後台執行緒無論執行完否都會被強制結束
前台執行緒——相反就會阻止執行緒結束
**示例:
1.1 在winform中,存在乙個主介面執行緒,我另起乙個執行緒作為後台執行緒,這裡通過設定新執行緒的isbackground屬性來改變執行緒的類別
**
private當我點選窗體退出按鈕後,會從任務管理器中看到 該程式是否還在執行,結果如下圖void
form1_load(
object
sender, eventargs e)
void
start()
}
執行中:
點選窗體退出按鈕後,任務管理器中的該程式不存在。這說明當前臺執行緒結束後,後台執行緒也結束啦
1.2 不設定新執行緒的isbackground屬性 預設的為前台執行緒 我們再看一下他的執行過程
**
private你會發現當你單擊了窗體的退出按鈕後,任務管理器中該應用程式仍然在執行,也就是說該程式沒有結束。導致這一結果的原因就是存在乙個前台執行緒沒有結束。void
form1_load(
object
sender, eventargs e)
void
start()
}
從這裡你就會發現前台和後台執行緒的區別,應該是會根據實際情況去使用這兩種執行緒了吧
C 執行緒 前台和後台
前台執行緒 後台退出,依賴前台執行緒結束 後台執行緒 後台退出,執行緒會自動結束。一些方法 start 執行緒啟動,什麼時候真正執行,依賴cpu除錯,只是告訴cpu可以執行,具體什麼時間執行,不確定。abort 終止執行緒,但是終止之後,不以再啟動.name執行緒名 thread.currentth...
C 多執行緒 前台執行緒和後台執行緒
由於時間片的原因,雖然所有執行緒在微觀上是序列執行的,但在巨集觀上可以認為是並行執行。執行緒有兩種型別 前台和後台。我們可以通過執行緒屬性isbackground false來指定執行緒的前後臺屬性 預設是前台執行緒 區別是 前台執行緒的程式,必須等所有的前台執行緒執行完畢後才能退出 而後台執行緒的...
C 多執行緒 前台執行緒和後台執行緒
由於時間片的原因,雖然所有執行緒在微觀上是序列執行的,但在巨集觀上可以認為是並行執行。執行緒有兩種型別 前台和後台。我們可以通過執行緒屬性isbackground false來指定執行緒的前後臺屬性 預設是前台執行緒 區別是 前台執行緒的程式,必須等所有的前台執行緒執行完畢後才能退出 而後台執行緒的...