IPC Mechanisms in C# - Usage and Best Practices我之前在Win32代码中使用过IPC-关键部分,事件和信号灯。 .NET环境中的场景如何? Microsoft最新在IPC中使用的工具是Windows Communication Foundation。实际上,底层没有任何新内容(tcp,upd,命名管道等),但是WCF大大简化了IPC的开发。 有用的资源:
,当然还有WCF上的MSDN 除了显而易见的(WCF),还有一个很好的C#/ CLR绑定ZeroMQ: http://www.zeromq.org/bindings:clr 使用比WCF少得多的代码和配置来进行面向消息的IPC,发布/订阅和其他各种策略。 它至少比其他任何东西都快一个数量级,并且如果您需要低延迟通信,则延迟更短。 关于信号量,锁,互斥量等。如果通过通信共享而不是通过共享进行通信,则与传统范式相比,您的整个工作负担将更少。 我倾向于使用命名管道或Unix套接字(取决于我的目标是MS.NET还是Mono -我有一个将其抽象化的类),因为它易于使用,可移植并且允许我轻松进行互操作与非托管代码。就是说,如果您只处理托管代码,则可以使用WCF或远程处理-如果您需要Mono支持,则可以使用后者,因为它们尚不支持WCF。 如果您需要在不通过网络进行通信的机器域上使用,我建议使用"内存映射文件"。请参阅以下链接。 http://techmikael.blogspot.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html 听起来您似乎对同步技术感兴趣,而不是对通信感兴趣。如果是这样,您可能想从这里开始,或者是更简洁的概述。 还有.NET Remoting,我发现它很酷,但是我想他们现在已经有了WCF,现在它们已经过时了。 |