回答

1

我不认为你会发现在任何跨平台的软件包,包括Poco的WaitForMultipleObjects()。没有我知道的Unix变体包在那种功能单个API调用,而是根据您正在等待的对象类型将其展开。

+0

它们都是同一类对象 - 在这种情况下是一个NamedEvent。 – Tim 2010-04-19 17:55:33

+0

@Tim您可能已经看过,但是根据平台,NamedEvent只是CreateEvent或信号量的包装。不知道你在做什么,但我没有看到一个简单的方法,而没有编写你自己的聪明的黑客。 – Duck 2010-04-19 20:08:23

+0

是的 - 我为waitformultipleobjects刷新了源代码。我会为每个事件启动一个线程并等待它。不知道这是最好的解决方案,但它会工作... – Tim 2010-04-19 20:12:29

0

class NotificationQueue会让您排队等待obj并加以处理。无论如何,使用IOC和委托最好是使用OOP,而不是使用大的WaitForMultipleObjects,然后使用switch语句。

+0

你是说NotificationQueue跨进程工作? (http://pocoproject.org/docs/Poco.NotificationQueue.html) – Tim 2010-04-19 17:47:31

+3

尽管人们普遍认为,“更好的面向对象”并不总是胜过“做我所需要的”。 – jalf 2010-04-19 18:16:50

+1

@jalf - 我完全同意。带有5个条目的switch语句为每个条目调用一个方法(一个事件处理程序)与代表没有区别。阅读起来也很简单,而且易于维护。 – Tim 2010-04-19 18:24:38