我正在寻找有关进行进程间通信的最佳方法的建议。
该解决方案包含3个项目。
GUI:这只会向用户显示消息并获取用户输入
Windows服务:与UI通信并使用提升的凭据运行第3个模块
工作人员:将执行实际工作的内部DLL
我需要一种方法让工作人员直接与GUI通信以发送和接收更新。
我有两种方法可以做到这一点(很乐意看到更多建议):
使用两个命名管道。一个用于GUI<>服务通信。另一个用于GUI<>工人沟通
将一个事件从Worker提升到Service。并使用从服务到UI的WCF回调
实施沟通的最佳方式是什么?
注意:此处的问题是GUI<>工作者通信。不是UI<>服务通信。
答案 0 :(得分:0)
1)WCF是官方推荐的实现进程间通信的方式(tcp或命名管道最快),它取代了远程处理(但总是使用序列化/反序列化)。 在高级场景中,可以使用
实现通信2)如果您的工作人员只是库(.net程序集) - 它将在服务进程中工作。在这种情况下,您不需要发明一些东西来将数据/事件从Worker传递到GUI,所有通信(双工,我想,订阅服务事件)将在GUI和服务之间执行(服务只通过常规将一些工作委托给Worker .net来电)
3)有时我们需要服务,客户端和服务器之间的调度程序。您可以找到一些信息here。