2009-06-03 30 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

相关问题