【发布时间】:2014-06-07 11:04:39
【问题描述】:
DoWork 是这样的:
DoLengthyWork();
//this is never executed
if(bgWorker.CancellationPending)
{
MessageBox.Show("Up to here? ...");
e.Cancel = true;
}
我用 bgWorker.CancelAsync() 触发取消;
如果 bgWorker.CancellationPending 因为被 DoLengthyWork 阻止而无法访问,我该如何停止 BackGround Worker?
【问题讨论】:
-
您需要在您的
DoLengthyWork()中获取bgWorker.CancelAsync()触发器,以便您可以创建一个安全的方法来取消挂起的作业。 .NET 不会为您取消作业,它只会通过CancellationPending属性设置取消。 -
@Yuval,该线程所做的只是解释为什么我的问题无法解决。不管怎么说,还是要谢谢你 ! ;)
-
它解释了必须做什么.. :)
标签: c# .net asynchronous backgroundworker