我有一个EXE和DLL在不同的进程中运行。从DLL我必须向EXE发送大量数据,这些数据从50个字符到2000个字符以及更多(数据是保存在DB中的记录的记录)。
我想到了两个选项:
任何人都可以列出方法的优缺点。
我使用C#.NET
开发了我的组件答案 0 :(得分:2)
您可以使用命名管道。除非你的两个进程之间的通信非常频繁,否则这样做很好,配置起来非常简单,并且非常快。
这里的另一个答案建议使用共享内存作为缓冲区。这也有效,但可能会更加努力。如果您在流程之间移动大量数据,这是值得的。
答案 1 :(得分:0)
答案 2 :(得分:0)
另一个易于设置的解决方案是使用数据库。
特别是如果您无法确定两个进程同时处于活动状态,则可以使用数据库(Sql Server Express或Compact)对数据进行排队。
这也可以实现双向沟通。
答案 3 :(得分:0)
我认为@ Ira的命名管道可能是最简单的,也是最好的解决方案。但是我很确定,大多数通信机制最终会落入共享内存文件实现中。如果你愿意感受到痛苦,.NET 4 has support for memory mapped files。希望这个链接很有帮助。