2

我有一个使用 BackgroundWorker 和 C# 的运行时间更长的多步骤进程。在继续下一步之前,我需要确保每个步骤都已成功完成。我已经看到很多关于让 BackgroundWorker 捕获错误并通过单击取消按钮取消的参考,但我想自己检查错误,然后优雅地结束该过程。我是像点击取消按钮一样对待它,还是有其他方法?

4

1 回答 1

5

给定一个BackgroundWorkerbgWrk:

您可以设置bgWrk.Cancel = true;发生错误的时间。这样做有以下效果:

然后,这会将CancellationPending标志切换为 true,您可以定期检查后台工作人员,然后适当地取消。据我所知,这将被认为是这样做的“最佳实践”。

然后,如果设置了标志,您可以确保不再运行您的代码CancellationPending,并且基本上等待调用者取消。它应该为您优雅地工作。

于 2010-03-16T13:57:35.437 回答