当前位置:  开发笔记 > 编程语言 > 正文

C#中的IPC机制 - 用法和最佳实践

如何解决《C#中的IPC机制-用法和最佳实践》经验,为你挑选了4个好方法。

我刚刚在win32代码中使用过IPC.[关键部分,事件和信号量]

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



1> aku..:

最近微软在IPC中的东西是Windows Communication Foundation.实际上在下层没有什么新东西(tcp,upd,命名管道等)但是WCF大大简化了IPC的开发.

有用的资源:

在Dobb博士的门户网站上与WCF进行进程间通信

.NET Framework 3.5中的WCF通信选项

当然还有WCF上的MSDN


嘿,第一个链接中的视频已经死了!

2> Deleted..:

除了显而易见的(WCF)之外,还有一个针对C#/ CLR的ZeroMQ绑定,这非常好:

http://www.zeromq.org/bindings:clr

面向消息的IPC,发布/订阅以及各种其他策略的代码和配置比WCF少得多.

如果您需要低延迟通信,它至少比其他任何内容快一个数量级,并且具有更少的延迟.

尊重信号量,锁,互斥体等.如果通过共享进行通信而不是通过共享进行通信,那么整个负载将比传统范例更轻松.


**"通过沟通而不是通过共享进行交流共享"**这应该是每天都在进行并发编程的人.
这是什么意思?

3> Cody Brociou..:

我倾向于使用命名管道或Unix套接字(取决于我是否针对MS.NET或Mono - 我有一个抽象它的类)因为它易于使用,可移植,并且允许我轻松地与非托管代码进行互操作.也就是说,如果您只处理托管代码,请使用WCF或远程处理 - 后者如果您需要Mono支持,因为他们的WCF支持还没有.


虽然这可能是在2008年9月(当这个评论发表时)的情况,但它是2011年和Mono上的WCF现在相当成熟.请参阅[Mono WCF开发页面](http://www.mono-project.com/WCF)并自行判断.

4> Demir..:

如果您需要在机器域上使用而不是通过网络进行通信,我建议使用内存映射文件.请参阅以下链接.

http://techmikael.blogspot.com/2010/02/blazing-fast-ipc-in-net-4-wcf-vs.html

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有