我正在寻找类似于Win32世界中的CreateEvent(),SetEvent()和WaitForMultipleObjects()的东西。
具体而言,必须可以在同一台机器上的进程之间访问它。
我们已经将Poco用于一些跨平台的东西,但我没有看到Poco :: Event就是我想要的。也许我错过了一些东西。
编辑:
解释我想做的事情:
我希望进程B知道进程A中发生了什么。这在win32中是微不足道的 - 每个进程/线程都调用带有事件名称的CreateEvent()。当事情发生时,进程B调用waitForXObject()并且进程A调用SetEvent()。 B发出信号。
同样,这在win32中是微不足道的,但如何跨平台做到这一点。
答案 0 :(得分:4)
C ++中没有内置的方法来执行命名事件。但你可以使用boost来做到这一点。
您正在寻找boost::condition和boost::named_condition
正如您还提到的那样:Poco.NamedEvent
答案 1 :(得分:2)
答案 2 :(得分:1)
oops - 在看到Brian关于命名事件的答案后,我似乎错过了Poco的解决方案:
http://pocoproject.org/docs/Poco.NamedEvent.html
我只见过Poco.Event
我们可能会使用它,因为它在客户端代码中似乎更简单,更轻。