直接从内存中处理C#中的内存映射文件

aru*_*cii 6 .net c# windows memory-mapped-files c#-4.0

是否可以直接在C#中打开内存映射文件,就像在Windows中直接打开文件一样,例如,我正在创建内存映射文件.通过以下代码.

using System;
using System.IO.MemoryMappedFiles;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main()
        {
            MemoryMappedFile mmf = MemoryMappedFile.CreateNew("test.txt", 5);
            MemoryMappedViewAccessor accessor = mmf.CreateViewAccessor();
            var arun = new[] {(byte)'a', (byte)'r', (byte)'u', (byte)'n'};
            for (int i = 0; i < arun.Length; i++)
                accessor.Write(i, arun[i]);
            Console.WriteLine("Memory-mapped file created!");
            Console.ReadLine(); // pause till enter key is pressed
            accessor.Dispose();
            mmf.Dispose();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我需要直接打开文件.是否有可能像打开文件一样

Process.start("test.txt");

从另一个进程而不是通过代码读取值.

 MemoryMappedFile mmf1 = MemoryMappedFile.OpenExisting("test.txt");
 MemoryMappedViewAccessor accessor1 = mmf1.CreateViewAccessor();
 var  value = accessor1.ReadByte(4);    
Run Code Online (Sandbox Code Playgroud)

如果可以直接打开内存映射文件?请告诉我.

Mit*_*eat 4

从 .NET Framework 版本 4 开始,您可以使用托管代码来访问内存映射文件,就像本机 Windows 函数访问内存映射文件一样,如 MSDN 库中的在 Win32 中管理内存映射文件中所述。