如何立即取消正在运行的BackgroundWorker?

时间:2012-02-09 18:06:46

标签: c# backgroundworker

我有时间在DoWork的{​​{1}}中处理。

每当我尝试BackgroundWorker取消作业时,backgroundWorker1.CancelAsync()变为待定,我应该等待backgroundWorker1.CancellationPending中的下一次迭代取消作业并自行退出作业

有没有办法在打电话后立即取消工作?

1 个答案:

答案 0 :(得分:7)

没有。一般来说,你不能“立即”安全地终止一个线程,因为它可能持有可能泄漏的资源,更重要的是它可能持有锁。您需要构建您的工作人员以尊重取消标记并尽快安全退出。