[英]Interprocess communication between 3 modules
我正在寻找有关进行进程间通信的最佳方法的建议。
该解决方案包含3个项目。
GUI:这只会向用户显示消息并获得用户输入
Windows服务:与UI通讯并使用提升的凭据运行第三个模块
工作者:将执行实际工作的内部DLL
我需要一种使工作人员直接与GUI通信以发送和接收更新的方法。
我有两种实现方法(很高兴看到更多建议):
使用两个命名管道。 一个用于GUI <> Service通信。 另一个用于GUI <> Worker通讯
将事件从“工作者”引发到“服务”。 并使用WCF从服务到UI的回调
实施交流的最佳方式是什么?
注意:这里的问题是GUI <> Worker通信。 不是UI <> Service通信。
1)WCF是正式推荐的实现进程间通信的方式(tcp或命名管道最快),它代替了远程处理(但始终使用序列化/反序列化)。 在高级方案中,可以使用以下方式实现通信
2)如果您的Worker只是库(.net程序集),它将在Service进程中运行。 在这种情况下,您无需发明任何方法即可将数据/事件从Worker传递到GUI,所有通信(我想应该是双工,订阅服务事件)都将在GUI和Service之间进行(服务仅通过常规方式将某些工作委托给Worker .net通话)
3)有时我们需要在服务,客户端和服务器之间分配器之类的东西。 您可以在此处找到一些信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.