在应用程序之间的消息中重复WaitForSingleObject
我在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 eventn");
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);
哪里不对? 谢谢
你为什么使用这个事件? 使用信号量 - CreateSemaphore()API。
即使在使用这个信号的(不适当的)事件时,我也不希望持续循环作为一个生产者,一个消费者和一个自动重置事件的症状 - 发布你的代码。
链接地址: http://www.djcxy.com/p/30799.html上一篇: repeating WaitForSingleObject in messages between to applications