【问题标题】:Read Memory-mapped file several times多次读取内存映射文件
【发布时间】:2015-06-16 21:47:07
【问题描述】:

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

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

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

谢谢,

【问题讨论】:

  • 没有,需要自己添加。 MMF 是一种非常 低级互操作机制,您最好使用基于 MMF 构建并具有您正在寻找的功能的 OS 对象。就像一个命名管道。
  • 我明白了。谢谢。

标签: windows memory-mapped-files


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-06
    • 1970-01-01
    • 2012-03-25
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多