2013-03-11 112 views
0

是否可以使用Windows消息系統作爲共享2 .NET應用程序的手段?如何做到這一點?我正在尋找一種在2個不同的.NET應用程序之間傳遞高頻數據的方法。我們嘗試過使用TCP/IP,但發現很難避免丟棄消息,因此我們切換到了可以工作但具有性能因素的MSMQ,而且我們不需要保留這些消息。互操作性的Windows消息傳遞?

我們假設這些應用程序在同一臺PC上運行。

+0

是兩個應用程序之間什麼樣的架構?高速LAN? WAN?無線? – EkoostikMartin 2013-03-11 21:39:07

+0

如果您現在正在使用TCP丟失消息,那麼在使用WM_COPYDATA時*不會變得更好。 「高頻數據」也不適合,消息循環始終是瓶頸。 – 2013-03-11 21:48:14

+0

管道(命名或匿名)或內存映射文件。 – 2013-03-12 00:36:00

回答

1

現在你編輯你的問題說,應用程序在同一臺PC上運行,我會建議你使用命名管道IPC - http://msdn.microsoft.com/en-us/library/windows/desktop/aa365780(v=vs.85).aspx

沒有理由去通過MSMQ或TCP/IP如果你在同一臺PC上,他們可以簡單地使用共享內存。

如果進程之間的合同是乾淨的(尤其是如果它是單向的),你可以使用WCF NetNamedPipeBinding一個更容易實現 - http://msdn.microsoft.com/en-us/library/ms752247.aspx