.net - 是否可以杀死 BackgroundWorker 的线程?

标签 .net multithreading backgroundworker

是否有可能“杀死” BackgroundWorker 的线程? ?

在我的 DoWork事件,我无法检查取消标志,因为我有一个阻塞
调用外部 COM 接口(interface)或查询数据库。 CancelAsync不会取消对 COM 的调用。

请问我该怎么做?任何建议将不胜感激。

提前致谢。

最佳答案

不,你不能杀死 BackgroundWorker线程,您只能尝试取消它,但它需要后台线程本身的一些交互才能停止工作:“工作代码应定期检查 CancellationPending 属性以查看它是否已设置为 true。” (c) MSDN

如果您需要完全控制一个线程,您必须使用 Thread 自己创建它。类(class)。

关于.net - 是否可以杀死 BackgroundWorker 的线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/543811/

相关文章:

ruby-on-rails - Sidekiq 在 worker 中找不到对象

wpf - 如何在没有 DoEvents 的情况下取消 WPF 中的 BackgroundWorker

java - 我可以使用什么 API 来等待任务完成

Python Queue.get(block=False) 与非空队列。它可以引发Queue.empty吗?

c++ - 高效实现多线程排序算法的关键是什么?天真的实现不能正常工作

c# - Mongo C# 驱动程序 2.0 - 在不获取文档的情况下查找计数

C# 我可以使用后台工作线程将值添加到列表框吗?

.net - WPF 中 UI 虚拟化的资源和指南

c# - 有选择地阻止调试器在第一次出现异常时停止

c# - 如何将 mysql 查询转换为可接受的 c# 字符串?