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

mam*_*ius 6 c# backgroundworker

我有时间处理DoWork我的问题BackgroundWorker.

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

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

Der*_*ark 7

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