我有两个使用事件进行同步的线程。 在每个线程它们使用相同的电话:在C++中创建/打开事件并检查它们是否被触发
::CreateEvent(NULL,TRUE,FALSE,tcEventName)
生产者线程是一个使呼叫第一,而消费者线程使最后调用,所以它在技术上开放,而不是创建该事件...我假设。
但是,当SetEvent的是所谓的生产者线程,相同的事件永远不会在消费者线程触发(我使用WaitForMultipleObjects的())
是否有一个工具,可以告诉我,如果该事件是实际上正确触发。
此外,当我在每个线程中调用CreateEvent()时,返回的句柄值对于每个值都是不同的...它们应该是相同的吗?
有没有更好的方法来做到这一点,以确保它能正常工作?
这是在Windows XP上使用Visual Studio 2005
编辑:我做了一些更多的检查,发现在生产者线程调用CreateEvent(第二个呼叫CreateEvent)设置LastError至183(ERROR_ALREADY_EXISTS) , 然而,CreateEvent仍然返回事件的句柄...什么给了?它如何错误已存在,但仍然返回句柄?还是应该这样做?
查看更新的问题... – 2009-03-01 18:38:58
http://www.google.com/search?q=createevent < - 第一个结果 – SoapBox 2009-03-01 20:18:22