2012-09-10 74 views
1

在我的測試中,似乎一旦調用CancelAsyncBackgroundWorker將不再支持ProgressChanged中的ReportProgress方法。 ReportProgress執行沒有例外,但ProgressChanged實際上停止任何事情。我想像的是這樣的:BackgroundWorker取消同步禁用ProgressChanged?

<code> 
if (CancellationPending) return; 
</code> 

in ProgressChanged

其他人能證實或反駁這種說法嗎?

雖然我可以看到它爲什麼看起來好像是個好主意,但它假設一旦CancelAsync被調用後,命令對象將永遠不會再發出用戶通知,這看起來似乎是假的。這實際上意味着你必須至少在打電話給ReportProgress之前檢查是否取消,這很可靠。即使那樣,我認爲這對於一場比賽來說也不是萬無一失的(說穿線麻木;-)。

回答

0

原來,這是我自己的代碼阻止了ReportProgress的工作。咄。驗證即使在調用CancelAsync並且CancellationPending設置爲true之後,也會調用ReportProgress。

相關問題