【发布时间】:2010-01-08 20:17:51
【问题描述】:
我正在使用 BackgroundWorker 来执行长时间的计算(一次只有一个这样的计算)。
用户有可能取消worker(调用worker.CancelAsync)。
在 worker.DoWork 方法中,我会定期检查取消挂起标志,然后从该方法返回。
然后从工作人员引发 Completed 事件,我可以检查工作人员是否被取消。此外,重要的是,当检测到取消时,我会进行一些额外的清理。
我确信如果用户取消了 worker 并且它已经从 DoWork 方法返回,那么可能会出现问题。在那种情况下,我真的很想知道工人被取消了,所以我可以清理......
有没有更好的方法来处理一个工人的取消过程?
【问题讨论】:
标签: .net multithreading backgroundworker