我有一个用于查询该传感器的硬件传感器的闭源 API。API 以 DLL 形式提供,我通过 C# 互操作使用。API 的功能是阻塞的。它们通常返回错误值,但在某些情况下它们不会返回。
我需要能够检测到这种情况并在这种情况下杀死被阻塞的线程。这如何在 C# 中完成?
它们被调用的线程是通过 BackgroundWorker 创建的。我正在寻找一个简单的看门狗来阻止函数调用,我可以在调用函数之前设置它并在我回来时重置。它应该坐在那里等我回来。如果我不这样做,它将终止线程,以便 1) API 再次被释放,并且我的应用程序的任何线程仍然没有挂起并在它最终返回时做任何事情2) 我可以采取其他恢复措施,例如重新初始化 API 以继续使用它。