[C#.NET][Thread] 背景執行緒與前景執行緒的差別

[C#.NET][Thread] 背景執行緒與前景執行緒的差別

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

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

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

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

image

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

image

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

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

若有謬誤,煩請告知,新手發帖請多包涵


Microsoft MVP Award 2010~2017 C# 第四季
Microsoft MVP Award 2018~2022 .NET

Image result for microsoft+mvp+logo