2009-06-03 32 views
2

我需要廣播一個可以被運行在Windows CE 5設備上的應用程序拾取的事件。在Windows CE中溝通跨進程的最佳機制是什麼?

以前沒有這樣做過,所以我很想知道什麼技術的人會建議看看我有沒有考慮過什麼。

需要接收此事件的所有應用程序都是基於.NET Compact Framework的,因此可以考慮「僅限管理」解決方案。

回答

6

我發誓,我已經回答了這個地方 - 在這裏,新聞組,博客,東西 - 但我不能找到它,所以這裏要再次重申:

你真的有Windows CE下IPC的4個選項。我將在這裏關注CF解決方案。

  1. 使用套接字。事件源需要知道水槽的存在,這是一種痛苦。這當然是我最不喜歡的選擇,我永遠不會使用它。
  2. 已命名的系統事件(a-la CreateEvent API)。這適用於「This is on」之類的簡單布爾類型事件。 CE很好,因爲您還可以將一個32位值與事件(SetEventData)關聯起來。對於託管實施,see this blog entry(實際班級是in the SDF)。
  3. 內存映射文件。 SDF has an implementation,我已經在幾個客戶項目中使用過,所以它的測試非常好。有一天,我應該寫一篇關於如何使用它的博客文章,但你很聰明,很可能從文檔中找出它。
  4. 點對點消息隊列。這些是CE特有的,但很酷。內核使用它們做了很多系統工作。它們非常快速和強大。再次,the SDF has an implementationMSDN has an article on usage,但要記住MSDN代碼有一些SDF已經修復的錯誤。
+0

嗨,我想確認SetEventData()在Windows Mobile上不可用。謝謝。 – 2010-04-21 07:38:54

1

我在那裏看到的大多數解決方案都使用自定義消息協議。

.Net套接字也被使用。

我知道緊湊框架3.5中有WCF,但有一些限制,並有相當多的反饋說它不可靠。

大多數機制的最大問題是序列化版本控制。

在這裏看到CF 3.5

相關問題