繁体   English   中英

在应用程序之间重复WaitForSingleObject的消息中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM