回答

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

相關問題