【发布时间】:2010-07-14 20:38:03
【问题描述】:
我正在开发一个 .net WPF 应用程序,我想加入一个双向 IPC 机制。我意识到命名管道和远程处理是选项,但是我想让非 .NET 应用程序与我的应用程序通信的机制不依赖于 .NET。
SO 推荐什么作为解决方案? WM_COPYDATA?
【问题讨论】:
我正在开发一个 .net WPF 应用程序,我想加入一个双向 IPC 机制。我意识到命名管道和远程处理是选项,但是我想让非 .NET 应用程序与我的应用程序通信的机制不依赖于 .NET。
SO 推荐什么作为解决方案? WM_COPYDATA?
【问题讨论】:
在这种情况下,我会使用命名管道。
在本机代码和 .NET 中,命名管道是 fully supported。它们提供了一种非常快速、高效的工作方式,并且非常容易在 .NET 中用于您当前的开发。这是 WM_COPYDATA 的更好选择(几乎在所有方面,IMO)。
话虽如此,Interprocess Communication options 还是不少的。其中许多都适用于 .NET 和本机代码,包括:
【讨论】:
命名管道不是 .NET 特定的。共享内存映射甚至 TCP/IP 都不会。至于 .NET 远程处理,我会避免使用它,即使双方都是 .NET。
【讨论】: