共用方式為


前景和背景線程

受控線程是背景線程或前景線程。 背景線程與前景線程相同,但有一個例外狀況:背景線程不會讓受控執行環境保持執行。 一旦受管理的過程中所有前景線程已停止(其中 .exe 檔案為受管理元件),系統就會停止所有背景線程並關閉。

備註

當運行時因為程序正在關閉而停止背景執行緒時,執行緒中不會拋出任何異常。 不過,當執行緒因為方法卸載應用程式域而停止時,會在前景執行緒和背景執行緒中擲回 AppDomain.Unload

Thread.IsBackground使用 屬性來判斷線程是背景或前景線程,還是變更其狀態。 線程可以隨時變更為背景線程,方法是將其 IsBackground 屬性設定為 true

這很重要

線程的前景或背景狀態不會影響線程中未處理的例外狀況結果。 前景或背景線程中未處理的例外狀況會導致應用程式終止。 請參閱 Managed線程中的例外狀況

屬於受控線程集區的線程(也就是屬性為 IsThreadPoolThreadtrue線程)是背景線程。 從 Unmanaged 程式代碼進入 Managed 執行環境的所有線程都會標示為背景線程。 建立和啟動新 Thread 物件所產生的所有線程預設都是前景線程。

如果您使用執行緒來監視活動,例如套接字連線,請將其 IsBackground 屬性設定為 true ,以便讓執行緒不會妨礙進程的終止。

另請參閱