執行緒 前台與後台

2022-03-21 02:12:48 字數 814 閱讀 1226

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來指定執行緒的前後臺屬性 預設是前台執行緒 區別是 前台執行緒的程式,必須等所有的前台執行緒執行完畢後才能退出 而後台執行緒的...