文件是否适用于进程间通信

时间:2010-06-14 06:17:09

标签: .net

我有一个EXE和DLL在不同的进程中运行。从DLL我必须向EXE发送大量数据,这些数据从50个字符到2000个字符以及更多(数据是保存在DB中的记录的记录)。

我想到了两个选项:

  1. 使用SendMessage-将批量发送数据。
  2. 使用中间文件传输数据。
  3. 任何人都可以列出方法的优缺点。

    我使用C#.NET

    开发了我的组件

4 个答案:

答案 0 :(得分:2)

您可以使用命名管道。除非你的两个进程之间的通信非常频繁,否则这样做很好,配置起来非常简单,并且非常快。

这里的另一个答案建议使用共享内存作为缓冲区。这也有效,但可能会更加努力。如果您在流程之间移动大量数据,这是值得的。

答案 1 :(得分:0)

使用共享内存作为缓冲区。

这是一个链接

http://www.codeproject.com/KB/DLL/Share_memory_throuth_DLL.aspx

答案 2 :(得分:0)

另一个易于设置的解决方案是使用数据库。

特别是如果您无法确定两个进程同时处于活动状态,则可以使用数据库(Sql Server Express或Compact)对数据进行排队。

这也可以实现双向沟通。

答案 3 :(得分:0)

我认为@ Ira的命名管道可能是最简单的,也是最好的解决方案。但是我很确定,大多数通信机制最终会落入共享内存文件实现中。如果你愿意感受到痛苦,.NET 4 has support for memory mapped files。希望这个链接很有帮助。