我打電話 obackgroundworker.CancelAsync(); 在後臺工作目前正在做一些工作,在另一個線程,然後使用 而(obackgroundworker.IsBusy ==真) 等待它退出應用程序(如果之前在線程是遠離處理的用戶改變主意完成我想關閉乾淨)後臺工作者類取消,設置取消掛起標誌,但不退出
平註銷掛起設置爲正確真實的,但是線程不退出,在工作線程我有:
backgroundworker obackgroundworker = (backgroundworker)sender;
if (obackgroundworker.cancellationpending == true)
e.cancel = true;
,應檢查是否取消正在等待,然後將取消標誌設置爲true,並且我認爲這也會導致線程實際終止...?還是有一些其他功能,我需要從線程調用時,它會檢測到取消實際結束?
我已經閱讀了很多使用完全像上面的背景工作的例子,並且不會報告任何問題。
來源:
http://www.albahari.com/threading/part3.aspx http://www.dotneat.net/2009/02/10/BackgroundworkerExample.aspx http://www.codeproject.com/KB/cpp/BackgroundWorker_Threads.aspx
感謝
這是obackgroundworker.IsBusy的正確用法?我打電話取消後會不會變成錯誤?目前,即使線程已被請求取消,仍存在無限循環。 – Nath 2009-11-10 10:48:30