1
我必須說它可能是一個不好的模式,但在我的沙箱中,我創建了一個接口,每次單擊時都會調用後臺服務(啓動線程並保持活動)一個按鈕。我如何獲得所有正在運行的線程的列表
這很好,因爲我可以創建一個混亂的情況,並找出環境如何處理這個。
但是,否則,我正面臨一個問題:如何獲取當前正在運行的所有線程並全部殺死它們。調用GB或其他東西。
我必須說它可能是一個不好的模式,但在我的沙箱中,我創建了一個接口,每次單擊時都會調用後臺服務(啓動線程並保持活動)一個按鈕。我如何獲得所有正在運行的線程的列表
這很好,因爲我可以創建一個混亂的情況,並找出環境如何處理這個。
但是,否則,我正面臨一個問題:如何獲取當前正在運行的所有線程並全部殺死它們。調用GB或其他東西。
我假設你threads-要在運行,你通過一些特殊的機制開始,對線程的列表不希望的所有運行列表?
如果是這樣的話,你可以做這樣的事情,你就這些線程:
List<Thread> myThreads = new List<Thread>();
public void StartAThread() {
Thread t = new Thread(... whatever ...);
myThreads.Add(t);
t.Start();
}
現在,假設你要殺死極端偏見這些線程 - 也就是你希望他們死了,現在,你不關心的連鎖離開工作做了一半的效果,你可以這樣做:
foreach (var t in myThreads)
t.Abort();
+1 [極端偏見終止(HTTP://en.wikipedia .ORG /維基/ Terminate_with_ extreme_prejudice) – Bob2Chiv
是的!我對此很難過。但我的問題是通過某種方式來反思或發現什麼是強制垃圾收集器。 – Custodio
你不需要強制垃圾收集器。一旦無法從任何正在運行的線程中引用對象,該對象就有資格使用GC並將自動清理。關鍵在於第一部分 - 確保任何正在運行的線程都無法訪問這些對象。 –