多次读取内存映射文件

时间:2015-06-16 21:47:08

标签: windows memory-mapped-files

我试图编写一个打开内存映射文件的应用程序,并在每次新数据来自其他应用程序时读取它。

我的问题是我的应用程序如何知道新数据何时进入阅读,或者它只是不断循环和阅读,并希望有一天会看到新数据?

Windows提供了什么样的机制来处理重复读取的内存映射文件。

谢谢,

1 个答案:

答案 0 :(得分:0)

您可以让更新内存映射文件的程序在写入新数据时引发事件,并让其他程序订阅该事件。然后,它会在收到事件通知时从内存映射中读取。

MSDN中有一个示例项目,展示了如何执行此操作

  

我创建了一个库,允许使用共享内存映射文件进行进程间通信,其中两个或多个进程可以读写字节数组。它提供了一种写入方法和每次有新数据时引发的事件。每个操作都在后台执行,因此您的应用程序在等待消息时永远不会阻塞。

https://code.msdn.microsoft.com/windowsdesktop/Inter-process-communication-e96e94e7