[英]repeating WaitForSingleObject in messages between to applications
我用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);
怎么了? 谢谢
您为什么为此使用事件? 使用信号量-CreateSemaphore()API。
即使在为此信号使用(不适当的)事件时,我也不会期望持续循环是一个生产者,一个使用者和一个自动重置事件的症状-发布您的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.