我们的C#代码调用库来初始化硬件设备,在某些情况下,如果硬件无法响应,调用可能会阻塞。为了让我们的代码超时,我考虑在一个任务中调用库函数,并在ManualResetEvent上使用带有超时的等待。但这仍然会使任务处于运行状态(阻塞)。既然我不能将取消令牌传递到库代码中,那么我如何中止任务呢?public class Foo ManualResetEvent _event = new ManualResetEvent( false );
设备B有3种状态:在任何状态下,我都可以连接到串口,但只有在显示就绪状态(#3)时才能获得DataReceived事件。如果在某些超时值上没有来自DataReceived的值,我需要触发屏幕来提醒用户设备没有处于就绪状态。根据我发现的内容,我尝试使用ManualResetEvent:
ManualResetEvent DataReceivedEvent = new Ma