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

时间:2012-11-30 10:15:55

标签: c# process .net-3.5 inter-process-communicat

  

可能重复:
  IPC Mechanisms in C# - Usage and Best Practices

我有两个不同的过程:AB

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

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

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

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

最简单的解决办法是什么?

4 个答案:

答案 0 :(得分:6)

您可以使用Named Pipe。如果是C#4.0及更高版本,您还可以使用Memory mapped file

答案 1 :(得分:2)

有很多选择。列举一些低级别的IPC机制:

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

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

  • .NET Remoting
  • WCF

答案 2 :(得分:0)

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

每个人都可以写入另一个读取的特定文件。

您可以使用WCF,注册表,网络接口,消息队列或任何其他位于该过程之外的机制。

答案 3 :(得分:0)

.net中有一些特殊的工具:

.Net Remoting

WCF