事件驱动的进程间通信 (IPC)

Posted

技术标签:

【中文标题】事件驱动的进程间通信 (IPC)【英文标题】:Event driven InterProcess Communication (IPC) 【发布时间】:2014-03-28 17:18:16 【问题描述】:

我正在创建一个 C# .NET 应用程序(单线程)。我需要从在同一台计算机上运行的现有 MFC 应用程序接收数据。我的 .NET 应用程序是由一些 Windows 窗体对象(如按钮等)以及串行端口输入驱动的事件。因此,例如,仅当有新的串行数据时才调用我的事件处理程序。我想知道是否有可以以事件驱动方式设置的 IPC 机制?我正在查看命名管道,但在网上没有看到其他人以这种方式使用它的任何示例。

【问题讨论】:

旁注:不要在以后的帖子中添加标签到标题和skip thank you notes/tagline。 对于套接字和命名管道也是如此,您将使用 BeginRead()。收到东西时回调运行。 【参考方案1】:

WCF 包含处理callbacks and events 的机制。如果您在本地计算机上,可以将其配置为在命名管道上工作,这使其非常快速和高效。

【讨论】:

谢谢,我阅读了 WCF 并且看起来这是用于加载接口的首选 API。谢谢。 我确实有一些后续问题。我查看了几个使用命名管道的 WCF 简单示例。我想知道是否可以使用像我现有的 MFC 应用程序这样的非 .NET 应用程序来与 WCF 命名管道进行通信?在我看到的示例中,我没有看到明确给出的名称,所以我对 MFC 应用程序的连接方式有点困惑。 此外,该示例具有更高级的接口,允许从客户端调用函数。我不知道 MPC 应用程序如何知道这个接口。我期待它更像是串行通信 - 只是从管道读取和写入字节。 @MichaelBauer 让非 .NET 客户端连接到 WCF 很困难(尽管并非不可能)。通常使用 C++/CLI 或 COM 更容易让您使用 .NET 代码编写客户端,并从您的 MFC 项目中访问它。 该链接现在重定向到有关 Microsoft 杂志的通用页面。

以上是关于事件驱动的进程间通信 (IPC)的主要内容,如果未能解决你的问题,请参考以下文章

Linux进程间通信(IPC)

进程间通信(IPC)

深刻理解Linux进程间通信(IPC)

深刻理解Linux进程间通信(IPC)

python 并发编程 锁 / 信号量 / 事件 / 队列(进程间通信(IPC)) /生产者消费者模式

进程间通信方式