2009-12-21 104 views
2

我有一個Windows服務(在C#中實現),我有一些像服務控制管理器。我想跟蹤服務中的消息到服務控制管理器(這是一個窗體窗體應用程序),但我不確定這樣做的最佳方式是什麼。該服務應將消息廣播給以非阻塞方式列出的所有客戶端。進程間通信/廣播

我曾考慮過使用命名管道或郵筒,但我不確定是否有更好的方法來做到這一點(我也不確定是否可以使用此技術實現廣播)。

任何建議都會大大降低。

回答

0

如果有多個客戶端正在偵聽,我認爲命名管道會多一點工作。我認爲共享內存對於這種情況會更簡單。如果客戶端可能位於單獨的機器上,那麼如果沒有涉及大量數據,則類似於多點傳送的東西可能是傳輸信息的簡單方法。但是,多播範圍通常僅限於單個子網,除非路由器專門配置爲多播。

+0

感謝您的回覆。客戶端都在同一臺機器上,因此我想避免涉及網絡堆棧。共享內存聽起來像一個選項。但是,如果使用Windows消息也是可行的(儘管在C#中使用它們看起來有點麻煩) – Jeldrik 2009-12-21 15:41:06

+0

我同意你在這種情況下避免網絡的評估。另一種可能更靈活的方法尤其適用於未來的更新,那就是使用.Net Remoting(http://msdn.microsoft.com/en-us/library/kwdt6w2k(VS.71).aspx)。這可能是「正式」正確的做法。 – 2009-12-21 16:17:12