在两个C#程序之间发送大量数据

rga*_*ann 5 c# ipc

我目前正在为一个需要通信的两个独立程序开发一个C#(我也可以使用python)插件.在第一个第一个程序中,我将3D几何体解构为边缘,点,法线等.然后,我将所有这些数据发送到我的第二个程序中的插件中进行重建.理想情况下,这将尽可能快地发生以保持"实时".

目前,我正在使用JSON转换数据,并将JSON写入磁盘.然后我的第二个程序监视文件更改,然后读取文件并使用JSON数据.

到目前为止,我整个插件的最大瓶颈是读/写过程.必须有一种比写入文件更快的方法.

Jim*_*idf 3

有多种方法可以使用进程间通信。
最著名的是在不同机器之间使用:WCF(.NET 3.5) 和 Remoting(.NET 2)

对于机器上的通信,您可以选择使用命名管道或内存映射文件。

内存映射文件与您的解决方案类似,因为它们使用页面文件作为备份。

我认为命名管道解决方案是最方便的:您设置一个“服务器”流并等待某个“客户端”连接。然后,您可以像通过任何其他流一样传输数据。

这是 NamedPipeServerStream
这是 NamedPipeClientStream
那里的代码示例几乎涵盖了它。