【问题标题】:How to check if a memory mapped file is exist? [closed]如何检查内存映射文件是否存在? [关闭]
【发布时间】:2013-02-20 10:11:04
【问题描述】:

我需要一种方法在访问之前以托管方式检查某个 MMF(内存映射文件)是否存在。

【问题讨论】:

  • 为什么不是一个真正的问题?
  • @HansPassant 我不同意。有很多应用程序可能想要同时从内存映射文件中读取,否则共享内存的意义何在?如果应用程序想要从共享内存中读取,但前提是它存在,否则它将从另一个源获取数据?
  • 这完全是一个有效的问题。您可以使用多种方法来确保一次只有一个进程可以处理内存映射文件。您可能仍想在尝试调用 OpenExisting 之前检查是否有其他进程创建了 MMF,并且可能会提前返回以防止不必要的代码执行。
  • 这是一个合理的问题,并已提供合理的答案。它不应该被关闭。

标签: c# .net visual-studio-2010 ipc memory-mapped-files


【解决方案1】:

您可以使用:MemoryMappedFile.OpenExisting 方法。如果指定的文件不存在,它会引发FileNotFoundException

【讨论】:

  • 可以一律做吗?这根本不是一个好习惯!
  • @MohamedSakherSawan:至少我知道,没有任何方法可以让你做你想做的事。但这根本不是问题,因为用异常管理程序流是一种非常常见,如果不是经常唯一可能的方法来管理程序中的 IO 访问。
  • 但是对性能非常不利!你可能适合 IO。
猜你喜欢
  • 1970-01-01
  • 2020-08-16
  • 2017-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多