我有一个核心的.NET应用程序,需要生成任意数量的子进程。这些进程需要能够访问核心应用程序中的某种状态对象。
哪种技术最好?我将在进程之间传输大量数据(位图),因此速度需要快。
WCF可能是最合适的选择。
这是一篇非常好的.NET Remoting文章,用于执行分布式强化分析。虽然Remoting已被WCF取代,但该文章仍然相关,并展示了如何进行异步调用等内容。
这篇文章将WCF与.NET Remoting进行对比——关键的收获在于,对于小数据,WCF的吞吐量优于Remoting,但随着数据大小的增加,它的性能趋近于Remoting。
我会有所犹豫地移动大量数据。相反,我倾向于移动指向大量数据的指针,即内存映射文件。
有一篇MSDN文章将WCF与各种方法进行比较,包括Remoting。 然而,除非我读取条形图错误,否则它显示Remoting与其他评论所说的相同或稍微更好。
还有一篇关于WCF和Remoting的博客文章。这篇博客文章清晰地展示了Remoting在处理二进制对象时更快,如果你要传递位图(二进制对象),那么似乎Remoting或共享内存或其他IPC选项可能更快,尽管选择WCF也不是一个坏选择。