或者是沒關係做這樣的事情:應該總是保持對C#中正在運行的線程對象的引用嗎?
new Thread(new ThreadStart(delegate { DoSomething(); })).Start();
?
我似乎記得,在這種情況下,Thread對象將被垃圾收集,但底層的OS線程將繼續運行,直到委託的末尾傳入它爲止。我基本上尋找ThreadPool功能,但不希望線程成爲後臺線程(即我希望他們保持應用程序活着)。
更新:據Jason介紹,CLR實際上在運行時保持對Thread對象的內部引用,所以在線程退出之前它不會被垃圾回收。
想一想這個問題的一種方法:「如果對象不存在,孤立線程中的執行邏輯如何能夠調用System.Threading.Thread.CurrentThread?」 – 2008-12-24 14:23:08
傑森,你假設有人會想到首先嚐試這個來測試這個。 ...我的意思是,我當然會......呃......呃...... =( – 2017-06-13 20:42:55