在线程中取消BackgroundWorker

时间:2010-03-16 13:47:02

标签: c# backgroundworker request-cancelling

我使用BackgroundWorker和C#进行更长时间的多步骤过程。我需要确保每个步骤都已成功完成,然后再继续下一步。我已经看到许多引用让BackgroundWorker捕获错误并取消单击“取消”按钮,但我想自己检查错误然后优雅地结束该过程。我是否像点击取消按钮那样对待它,还是有另一种方式?

1 个答案:

答案 0 :(得分:5)

给出BackgroundWorker bgWrk:

发生错误时,您可以设置bgWrk.Cancel = true;。这样做会产生以下影响:

然后将CancellationPending标志切换为true,您可以定期检查后台工作者,然后适当取消。据我所知,这将被视为“最佳实践”。

如果设置了CancellationPending标志,则可以确保不再运行代码,并且基本上等待从调用者取消。它应该适合你。