我正在創建一個新線程來調用其中的函數。如何獲得線程執行完成事件
Thread th = new Thread(My_Function);
th.start();
我想對這個線程執行完成一些操作。
有沒有辦法做到這一點?
我正在創建一個新線程來調用其中的函數。如何獲得線程執行完成事件
Thread th = new Thread(My_Function);
th.start();
我想對這個線程執行完成一些操作。
有沒有辦法做到這一點?
至少有兩種可能的解決方案:
BackgroundWorker的
使用BackgroundWorker
來執行你的代碼,並使用RunWorkerCompleted
事件來執行代碼這是完成後運行。
A BackgroundWorker
將基於事件的異步模式封裝成非常易於使用的機制,並完成進度報告和取消。看到這個BackgroundWorker tutorial和this SO回答。
任務(.NET 4.0以上)
使用Task
對象,並使用ContinueWith
方法來定義需要第一任務的完成後要執行的代碼。
您可以使用一些諸如
if(th.isAlive())
{...}
這會阻止您的代碼,直到線程完成。 –