backgroundworker:如何执行方法并支持取消_DoWork?

时间:2011-08-11 17:50:26

标签: .net backgroundworker

我有referred to MSDN并发现通过触发事件取消BackgroundWorker的_DoWork()非常容易。

我想知道如何在我在_DoWork()中调用的另一种方法中执行工作时取消_DoWork()。

这可能吗?

http://pastebin.com/wHrrBWKZ

谢谢,

马特

1 个答案:

答案 0 :(得分:2)

BackgroundWorker示例here显示了如何执行此操作。

总结:

  • 创建BackgroundWorker时,请设置WorkerSupportsCancellation
  • DoWork处理程序中,定期检查CancellationPending。如果是,则将DoWorkEventArgs.Cancel设置为true并从DoWork返回。
  • 要取消该任务,请致电CancelAsync
  • 要检测任务已取消,请观察RunWorkerCompletedEventArgs.Cancelled

要从另一个方法中执行此操作,该方法必须具有BackgroundWorker实例并且DoWorkEventArgs实例已传递给它。