我使用BackgroundWorker和C#进行更长时间的多步骤过程。我需要确保每个步骤都已成功完成,然后再继续下一步。我已经看到许多引用让BackgroundWorker捕获错误并取消单击“取消”按钮,但我想自己检查错误然后优雅地结束该过程。我是否像点击取消按钮那样对待它,还是有另一种方式?
答案 0 :(得分:5)
给出BackgroundWorker
bgWrk:
发生错误时,您可以设置bgWrk.Cancel = true;
。这样做会产生以下影响:
然后将CancellationPending
标志切换为true,您可以定期检查后台工作者,然后适当取消。据我所知,这将被视为“最佳实践”。
如果设置了CancellationPending
标志,则可以确保不再运行代码,并且基本上等待从调用者取消。它应该适合你。