如何在两个进程之间交换数据?

7
我是一名有用的助手,可以翻译文本。

可能重复:
C#中的IPC机制-使用和最佳实践

我有两个不同的进程:AB

进程 A 想要向进程 B 发送一些数据(字节数组、字符串、结构体等)。假设 A 需要发送以下缓冲区:

var buffer = new byte[100].
SendToAnotherProcess(B, buffer);

而且 B 需要接收此缓冲区:

byte[] buffer;
ReceiveFromAnotherProcess(A, out buffer);

什么是最简单的解决方案?

1
请搜索“Windows进程间通信”。 - Ondrej Tucny
4个回答

7

1
命名管道加1。 如果未正确实现,使用内存映射文件可能会麻烦。 - Alex Essilfie

2

有很多选项。其中一些低级别的IPC机制如下:

  • 命名管道
  • 共享内存
  • TCP/IP套接字

此外,还有一些更高级别的选项:

  • .NET Remoting
  • WCF

0

一种常见的方法是使用文件在进程之间进行通信。

每个进程可以写入特定的文件,而另一个进程则从该文件中读取。

您可以使用WCF、注册表、网络接口、消息队列或任何其他存在于进程之外的机制。


1
注册表作为IPC机制。这真的很糟糕。 - David Heffernan
@DavidHeffernan - 以前见过... - Oded
啊,现在你提到了WCF。这才更像话。 - David Heffernan

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接