如何使用内存映射文件进行进程间通信?
Posted
技术标签:
【中文标题】如何使用内存映射文件进行进程间通信?【英文标题】:How can I use memory mapped files for interprocess communcation? 【发布时间】:2009-10-08 15:53:06 【问题描述】:.Net 4 将对内存映射文件提供出色的支持。不同博客 (http://blogs.msdn.com/salvapatuel/archive/2009/06/08/working-with-memory-mapped-files-in-net-4.aspx) 上列出的两个主要应用程序是:
1) 编辑大文件,
2) 进程间通信。
我已经在命名管道上使用 WCF 进行进程间通信。
有人可以向我解释/提供一些示例如何使用内存映射文件实现类似的功能吗?例如,我想从一个进程中调用一个方法,该方法将在另一个进程中执行,结果在调用进程中“发送”/可用。
【问题讨论】:
【参考方案1】:使用 IPC,您必须在每次调用方法时在传递数据之前对数据进行序列化/反序列化。使用 MMF,您仍将使用 IPC 进行通知,但是您将不再传递序列化数据,而是传递内存句柄。这可以显着提升处理大数据的性能,因为您可以节省序列化/反序列化的时间和空间。
【讨论】:
好的,所以如果我理解正确,我将不得不使用混合方法。我只是好奇 IPC/WM_ 消息如何使用 MMF 来提供基于事件的模型。根据微软的套接字、管道、OLE 等都是基于 MMF 的。以上是关于如何使用内存映射文件进行进程间通信?的主要内容,如果未能解决你的问题,请参考以下文章