5

我正在开发一个 Windows 窗体应用程序,以便在通过 USB 连接的设备上执行一些操作。对于读取、写入等所有操作,我们有一个自定义库。

当用户点击一个按钮时,写操作就完成了。

要阅读,会创建一个单独的线程。可用库的问题是读取调用被阻塞并且具有无限超时。

在连接失败的情况下,这个线程会停留在读取函数调用,因为这个函数只有在它接收到数据时才会中断。

在这种情况下杀死这个线程的方法是什么?Thread.Abort() 不起作用。

我正在使用 C# 进行此编程。

4

1 回答 1

1

您的 Read 方法可能会调用本机代码,因此线程无法中止。没有办法(至少我熟悉)中止使用 COM 互操作的线程。你可以先看看为什么 Read 方法会阻塞线程。在调用 Read 方法之前尝试检查需求。

看看这个问题:Abort call to unmanaged DLL

于 2012-08-23T11:53:37.860 回答