我不久前在win32代码中使用过IPC。[关键部分、事件和信号量]

.NET环境下的场景如何?是否有任何教程解释所有可用选项以及何时使用以及为什么?

有帮助吗?

解决方案

微软最近在IPC方面的东西是 Windows 通信基础. 。实际上底层并没有什么新东西(tcp、upd、命名管道等),但是 WCF 极大地简化了 IPC 开发。

有用的资源:

而且当然 MSDN 上的 WCF

其他提示

除了明显的 (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。

听起来您似乎对同步技术而不是通信感兴趣。如果是这样,您可能想开始 这里, ,或者也许更多 简明概述.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top