在Windows CE中进行跨进程通信的最佳机制是什么?

Qui*_*ome 2 .net compact-framework windows-ce

我需要广播一个可以在Windows CE 5设备上运行的任何应用程序拾取的事件.

之前没有这样做,所以我有兴趣了解人们会建议看哪些技术,如果有什么我没有考虑过.

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

cta*_*cke 6

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

在Windows CE下,你真的有4个IPC选项.我将专注于CF解决方案.

  1. 使用套接字.这是一个痛苦,因为事件源需要知道接收器的存在.这当然是我最不喜欢的选择,我从不接近它.
  2. 命名系统事件(a-la CreateEvent API).这适用于一个简单的布尔类型事件,例如"this is on".CE很好,因为您还可以将32位值与事件(SetEventData)相关联.对于托管实现,请参阅此博客条目(实际的类在SDF中).
  3. 内存映射文件.该SDF有一个实现,我已经在一对夫妇的客户项目中使用,所以这是非常行之有效的.总有一天我应该写一篇关于如何使用它的博客文章,但你很聪明,很可能从文档中找到它.
  4. 点对点消息队列.这些是特定于CE的,但很酷.内核将它们用于很多系统内容.它们非常快速且稳健.同样,SDF有一个实现. MSDN上有一篇关于使用的文章,但请记住,MSDN代码中有一些SDF修复过的错误.