在我的测试中,似乎一旦CancelAsync
被调用,将BackgroundWorker
不再尊重ReportProgress
. 无异常执行,但实际上停止执行任何操作。我在想像:ProgressChanged
ReportProgress
ProgressChanged
<code>
if (CancellationPending) return;
</code>
在ProgressChanged
.
其他人可以证实或反驳这一说法吗?
虽然我明白为什么它看起来是个好主意,但它假设命令对象一旦CancelAsync
被调用就不会再做任何用户通知,这似乎是假的。这实际上也意味着您至少必须在致电之前始终检查取消ReportProgress
,这非常笨拙。即便如此,我也不认为这对一场比赛是万无一失的(线程麻木的说;-)。