【问题标题】:How to lock unmanaged memory in .NET如何在 .NET 中锁定非托管内存
【发布时间】:2012-04-17 08:59:17
【问题描述】:

我正在考虑使用 MemoryMappedFile 在多个进程之间共享内存。
虽然一个进程正在读写(以及更多),但我不希望另一个进程访问内存。

如果可以,我该如何实现?

【问题讨论】:

    标签: .net-4.0 asp.net-4.0 shared-memory


    【解决方案1】:

    在处理进程间同步时,通常使用MutexSemaphore 等同步对象。 Named mutex 可以在进程之间共享并提供您想要的,特别是如果您在不同的进程上运行托管和非托管代码。

    但请注意,由具有更高权限的进程创建的互斥锁对于具有较少权限的进程将无法访问。当您在具有某种管理员权限的 Windows 服务上创建互斥锁,然后尝试从作为网络服务启动的 IIS Web 应用程序访问互斥锁时,可能会发生这种情况。

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 1970-01-01
      • 2011-02-20
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-14
      • 2013-10-10
      相关资源
      最近更新 更多