BackgroundWorker CancelAsync禁用ProgressChanged?

时间:2012-09-10 18:21:53

标签: backgroundworker

在我的测试中,似乎在调用CancelAsync后,BackgroundWorker将不再遵守ReportProgress中的ProgressChanged方法。 ReportProgress执行时没有异常,但ProgressChanged停止实际执行任何操作。我想象的是:

<code>
if (CancellationPending) return;
</code>
ProgressChanged中的

其他人可以确认或反驳这种说法吗?

虽然我可以看出为什么它似乎是一个好主意,但它假设命令对象在调用CancelAsync后永远不会再做任何用户通知,这似乎是假的。它实际上也意味着您必须至少在致电ReportProgress之前检查取消,这是非常笨拙的。即便如此,我认为它不会对一场比赛万无一失(说穿线的numbskull ;-)。

1 个答案:

答案 0 :(得分:0)

事实证明,这是我自己的代码阻止了ReportProgress的工作。咄。验证即使在调用CancelAsync并且CancellationPending设置为true后调用ReportProgress。