2013-07-25 82 views
0

設置:4個進程需要監視集中式源(我正在考慮Message Queue),並在消息放入隊列時收到警報。這是爲了報告每個流程需要知道的錯誤,以決定他們將如何處理它。進程之間的Windows CE集中式消息隊列

但是我有幾個問題,因爲我想確保消息隊列是在我冒險走到那條路前最好的方式。

Windows CE上的Message Queue API是否有某種事件/通知?如果沒有,Windows CE操作系統本身是否允許您以某種方式配合隊列,以便發送新消息到來?對於這種設置和要求,是否有更好的Inter Process通信工具?

編輯:另外,這將是一個不能丟失的錯誤的運行日誌,所以我會把它放在我的閃存。

回答

0

總是有效的是通過環回的簡單TCP連接。這也可以很容易地在桌面系統上進行調試,以防萬一。關於CE的消息隊列,它們總是1:1,所以你需要儘可能多的進程間連接。另外,如果您想以類似TCP流的方式使用它們,則每個方向都需要一個。

還有另外一種方法可以使用,那就是監視你記錄信息的文件。我不確定CE支持文件更改的通知API的程度,但如果您不需要低延遲響應,您可以隨時輪詢每一個。或者,在寫入日誌文件後使用命名事件。

+0

發現CE確實支持NAMED事件。作爲winAPI和嵌入式領域的新手,我沒有意識到有一個命名事件意味着其他進程可以掛鉤到全局事件中並使用它。它沒有在MSDN的文檔中說出命名或未命名事件的結果。在一些研究中發現這一點之後,我要去命名的事件路線。 –

+0

還有其他全局資源,例如互斥鎖和共享內存,完全可以提供IPC功能。祝你好運! –