【问题标题】:What is the best mechanism for communicating cross-process in Windows CE?在 Windows CE 中进行跨进程通信的最佳机制是什么?
【发布时间】:2009-06-03 18:09:09
【问题描述】:

我需要广播一个可以被 Windows CE 5 设备上运行的任何应用程序接收到的事件。

以前没有这样做过,所以我很想知道人们会建议什么技术,看看是否有什么我没有考虑过的。

所有需要接收此事件的应用程序都基于 .NET Compact Framework,因此可以考虑“仅托管”解决方案。

【问题讨论】:

    标签: .net compact-framework windows-ce


    【解决方案1】:

    我发誓我已经在某个地方回答过这个问题 - 这里、新闻组、博客等 - 但我找不到它,所以又来了:

    在 Windows CE 下,您确实有 4 个 IPC 选项。我将在这里重点介绍 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 已修复的错误。

    【讨论】:

    • 您好,我想确认 SetEventData() 在 Windows Mobile 上不可用。谢谢。
    • SetEventData 适用于所有 Windows CE 平台,包括 WinMo
    【解决方案2】:

    我见过的大多数解决方案都使用自定义消息传递协议。

    .Net Sockets 也被使用过。

    我知道紧凑型框架 3.5 中有 WCF,但有一些限制,并且有相当多的反馈说它不可靠。

    大多数机制的最大问题是序列化版本控制。

    查看这里CF 3.5

    【讨论】:

      猜你喜欢
      • 2018-05-31
      • 1970-01-01
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2010-09-10
      • 2019-04-20
      相关资源
      最近更新 更多