.NET中的进程间通信我有一个核心.NET应用程序,需要生成任意数量的子进程。这些进程需要能够访问核心应用程序中某种形式的状态对象。最好的技术是什么?我将在进程(位图)之间移动大量数据,因此需要快速。WCF可能符合要求……这是一篇关于.NET远程处理的非常好的文章,用于执行分布式密集分析。虽然远程处理已被WCF取代,但该文章是相关的,并展示了如何异步调用等。本文将WCF与.NET远程处理进行了比较-编辑:这里的关键要点是WCF吞吐量输出对小数据执行远程处理,但方法是远程处理性能随着数据量的增加而增加。我对移动大数据犹豫不决,我倾向于围绕大数据而不是内存映射文件移动指针。我有类似的要求,我正在使用WindowsCommunicationFoundation来做到这一点。我的数据量可能略小。作为参考,我在四核机器上以大约5K-30K的速度每秒处理大约30-60个请求。到目前为止,WCF表现良好。使用WCF,您可以选择适合您的应用程序的传输协议和安全模型。如果你真的需要单独的进程,总是有命名管道,它会表现得很好。但是,AppDomain边界是否足够?然后你可以做对象编组,事情会容易得多。您的应用程序可以使用MarshalByRefObject属性来处理同一对象的共享实例。您可以使用.NET远程处理与IpcChannel进行进程间通信(IPC)。否则,您可以搜索共享内存包装器和其他IPC形式。编辑:有一篇MSDN文章将WCF与包括远程处理在内的各种方法进行了比较。但是,除非我读错了条形图,否则它会显示Remoting相同或略好(与其他评论不同)。还有一篇关于WCFwithRemoting的博文。博客文章清楚地表明,对于二进制对象,远程处理速度更快,如果您传递位图(二进制对象),看起来远程处理或共享内存或其他IPC选项可能更快,尽管WCF可能不是一个糟糕的选择。您还可以使用Eneter消息传递框架。该框架提供代理组件的使用,其中所有客户端都可以订阅以在状态更改时收到通知。为了将客户与经纪人联系起来。该框架提供命名管道、Tcp或Http。但看起来最好使用命名管道。有关该框架的更多信息可以在链接文本中找到。以上就是《C#学习教程:.NET中的进程间通信》的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
