在C#中进行进程间通信的最简单方法是什么?

我有两个C#应用程序,我希望其中一个发送两个整数到另一个(这不一定很快,因为它每隔几秒只调用一次)。

最简单的方法是什么? (它不一定是最优雅的。)

最简单,最可靠的方式几乎可以肯定是IpcChannel (又名Inter Process Communication Channel); 这就是它的用途。 您可以使用几行代码和配置来启动和运行它。

您可以尝试.NET Remoting。 这是一个简单的例子: CodeProject .NET Remoting 。

如果您使用的是.NET 3.5,那么您应该选择WCF,因为Remoting正在逐渐过时。 同样, WCF还有很多例子 。

我已经创建了自己的开源库,用于快速简便的IPC,可以在Windows服务,控制台应用程序和Windows窗体之间工作。

它具有优于现有IPC实现的一些优点,并且不需要任何配置。

看到这里 。

我会说让他们通过套接字说话。

让一个程序listen套接字并让另一个程序connect到第一个套接字。 将两个整数发送到一行,作为数字串。

唯一的问题是他们应该如何就港口号码达成一致,以及他们如何知道他们正在互相交谈。 他们可以通过你决定他们应该总是使用端口12345(比如说)来同意端口号码,而第二部分的脏兮兮的解决办法就是只相信你和谁说话是个好人。

另一种方法是模仿命名管道。 在某处声明一个文件,并从中读取/写入它。

或者,如果程序按顺序执行,你可以尝试剪贴板……但是这个解决方案很丑陋而且有问题(有时.NET无法无缘无故地访问剪贴板)。

Mutex可以是一种选择; 请阅读: 使用.NET 2.0的进程间数据交换

为了完整net.pipe ,您还可以使用net.pipeWCF