文件适合进程间通信吗?

3
我有一个在不同进程中运行的EXE和DLL。从DLL中,我需要发送大量的数据到EXE,这些数据将从50个字符到2000个字符或更多不等(这些数据是保存在数据库中的记录ID)。
我考虑了两个选项来完成此任务:
1. 使用SendMessage- 批量发送数据。 2. 使用中间文件传输数据。
请问有人能列出这两种方法的优点和缺点吗?
我使用C#.NET开发了我的组件。
4个回答

2

你可以使用命名管道。除非你的两个进程之间的通信非常频繁,否则这样做就可以了,它很容易配置,并且非常快。

这里的另一个答案建议使用共享内存作为缓冲区。这也是可行的,但可能需要更多的工作量。只有在进程之间传输大量数据时才值得这样做。


0

非常感谢您的回复!如果不使用共享dll,还有其他方法吗? - Karthik

0
另一个容易设置的解决方案是使用数据库。
特别是如果您不能确定两个进程是否在同一时间内活动,可以使用数据库(Sql Server Express或Compact)来对数据进行排队。
这样还可以实现双向通信。

0

我认为@Ira的命名管道可能是最简单、因此也是最好的解决方案。但是我相信大多数通信机制最终都会转化为共享内存文件实现。如果你愿意尝试, .NET 4支持内存映射文件。希望这个链接能够有所帮助。


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