我的程序中有2個線程。 1正在處理一個GUI,另一個正在做一些字自動操作。讓我們稱他們爲GUIThread和WorkerThread。檢查線程在「殺死」之前是否完成了它的方法c#
WorkerThread正在循環使用遞歸方法。 WorkerThread只在執行單詞自動化時處於活動狀態,用戶必須能夠停止單詞自動化。因此我在GUI上實現了一個「停止」按鈕,它可以簡單地殺死/終止WorkerThread。然而,如果我在一個方法中間殺掉了WorkerThread,它有時會在我的Word文檔中產生一個問題(這是一個更長的故事),這就是爲什麼我要在殺死之前檢查WorkerThread是否已經完成/返回的原因它。
這是我的代碼做什麼,當我點擊「停止」按鈕:
//Stops the worker thread = stops word automation in process
workerThread.Abort();
//This blocks the thread until the workerThread has aborted
while (workerThread.IsAlive) ;
我自己的建議/解決辦法對這個問題是有一個全局變量,我可以在的WorkerThread輸入的每個時間設置和左一種方法,但這似乎不適合我。我的意思是我認爲必須有一個更簡單的方法來處理它。
http://msdn.microsoft.com/en-us/library/dd997364(v=vs.110).aspx ---管理線程中的取消 – zerkms 2014-12-19 08:11:23
正如Zerkms所建議的那樣,您必須使用取消令牌 – Younes 2014-12-19 08:13:03