引用 17 楼 xqhrs232 的回复:
难道跟中断绑定的事件不能让两个线程同时去等待?
2个线程等一个中断,怎么调度?
LZ是不是要等中断,如果等不到,就超时做其他处理?创建一个IST线程就可以了。如果处理过程很复杂或者占用其他资源之类的,再考虑创建另一个线程,在IST线程里触发个事件同步
Timeout = 5000;
while (!IsTerminated())
{
dwWaitStatus = WaitForSingleObject(m_CableEvent, Timeout);
switch(dwWaitStatus)
{
case WAIT_OBJECT_0:
RETAILMSG(ZONE_INT, (TEXT("CableIST get event \r\n")));
CableDetectHandle();
InterruptDone(m_dwCableSysIntr);
break;
case WAIT_TIMEOUT:
RETAILMSG(ZONE_INT, (TEXT("CableIST timeout \r\n")));
CableDetectTimeoutHandle();
break;
default:
RETAILMSG(ZONE_INT, (TEXT("CableIST Wait object Error\r\n")));
}
}
复制代码