2010-02-10 17 views

回答

7

後臺線程(其線程對象的Background屬性設置爲true) 不會阻止應用程序退出。

一旦所有正常(前景)線程退出,任何正在運行的後臺線程立即終止。 另外,如果AppDomain被卸載,AppDomain中的所有後臺線程立即中止。

ThreadPool管理的線程是後臺線程。

前臺線程是一個普通的線程。

主線程是啓動程序的初始線程。 (運行Main方法的線程)

有關更多信息,請參閱here

+0

SLaks,線程池中的線程數是否有限制? – SoftwareGeek

+0

是的,有;閱讀鏈接。默認限制是每個CPU 250個;你可以通過調用ThreadPool.SetMaxThreads來改變它。 – SLaks

+1

我可能會誤解,但我認爲每個核心的限制是。還有一點,你的應用中很少有機會需要這麼多線程。你所要做的就是增加線程開銷。從核心2/3線程看來,這是一個不錯的選擇。 –

0

甲後臺線程正是如此,它是在從一個應用程序的UI線程後臺運行的線程。像Winforms應用程序那樣的UI線程是負責重新繪製UI和其他用戶交互的線程。

將長時間運行的進程移至後臺線程將有助於提高可用性。這是一個很好的intro document爲你穿線。