事件驱动的进程间通信 (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)的主要内容,如果未能解决你的问题,请参考以下文章