2010-03-11 68 views
2

如果我使用線程這樣的:未引用Thread對象處理

void foo() 
{ 
new Thread().Start(); 
} 

因爲Thread對象不被引用,將它由GC指定的工作完成之前配置?

回答

2

線程應該保持活動狀態,直到其方法返回。

退房:What prevents a Thread in C# from being Collected?

+0

所以CLR是線程感知的。 – Benny 2010-03-11 05:15:32

+0

@Benny我相信是這樣,但一旦線程完成了所有需要做的工作,它應該由GC處理 – 2010-03-11 05:16:55

2

From MSDN

這是沒有必要保留一個 參照Thread對象,一旦你 已啓動線程。線程 繼續執行,直到線程 過程完成。

 
的System.Threading.Thread類實際上只是在那裏記賬/管理。它不是創建/維護線程的實際機制。這是由運行時管理的,並且是CLI實現特定的(例如,Mono實現可能在線程管理方面顯着不同)。