首页 文章

如何使用UnmanagedMemoryAccessor.ReadArray <T>(Int64,T [],Int32,Int32)

提问于
浏览
-2

我想读取/写入数据到内存映射文件 . 如何使用UnmanagedMemoryAccessor.ReadArray(Int64,T [],Int32,Int32)

  • struct Data {public int a; public int b; public byte [];}

  • static Data _sdata = new Data(); static Data _mydata = new Data(); _mdata.byte = _sdata.byte = new byte [2];

  • _mmf = MemoryMappedFile.CreateNew("test",10);

  • var ired = _mmf.CreateViewAccessor();

  • ired.Read(0,out mdata); here has Error 那么,T结构应该正确的是什么?

1 回答

  • 0

    该数组不能是必须包含在结构中的引用 . 您必须为程序集启用不安全的代码并使用以下结构定义:

    [StructLayout(LayoutKind.Sequential, Pack = 1)]
    unsafe struct Data {
        public int a;
        public int b;
        public fixed byte bytes[100];
    }
    

相关问题