如何立即取消正在运行的BackgroundWorker?
我有时间在BackgroundWorker
DoWork
中处理过程。
每当我尝试通过backgroundWorker1.CancelAsync()
取消作业时, backgroundWorker1.CancellationPending
变为Pending,我应该等待DoWork
的下一次迭代取消作业并自行退出。
有没有办法在打电话后立即取消工作?
不可以。一般来说,你不能“立即”安全地终止一个线程,因为它可能持有会泄漏的资源,更重要的是它可能是持有锁。 您需要构建您的工作人员以尊重取消标志并尽快安全退出。
- C#Downloader:我应该使用Threads,BackgroundWorker还是ThreadPool?
- 什么不能在此时修改此节点的逻辑子节点,因为树步行正在进行中?
- BackgroundWorker OnWorkCompleted抛出跨线程exception
- 尝试将float转换为Int32时,Convert.ToInt32(float)失败
- 在WPF中使用计时器刷新UI(使用BackgroundWorker?)
- 如何在C#中使用后台工作者中的Web浏览器对象
- 后台工人类和使用来自c#中不同类的进度事件传递消息
- Backgroundworker中止
- 填写dataGridView谢谢backGroundWorker