我在 C(生产者和消费者)中创建了两个程序,它们相互发送消息(使用 CreateEvent、SetEvent 和 WaitForSingleObject)
我为每个程序实现一个线程以使用 WaitForSingleObject(myEvent, INFINITE) 等待消息来管理此消息
我将 WaitForSingleObject 放入循环中以重复并及时获取许多消息。
这在第一次工作正常,但其他时候 WaitForSingleObject 不等待消息,左侧代码在不定式循环中运行(再次包括 WaitForSingleObject)
我测试删除了两个程序的 CloseHandle(myEvent) 但没有结果
do {
//wait until the event received from another process
WaitForSingleObject(myrcvEvent, INFINITE);
//send the feeback event, if it is failed show a message
printf ("consumer: try to send the feedback event\n");
if (!SetEvent(myfeedbackEvent)) {
msgbox("consumer: Set feedbackEvent failed!");
return;
} else {
InvalidateRect(hWnd,NULL,TRUE); //redraw with new values
}
//CloseHandle(myrcvEvent);
//CloseHandle(myfeedbackEvent);
Sleep(100);
} while(1);
怎么了?谢谢