【问题标题】:How to use UnmanagedMemoryAccessor.ReadArray<T> (Int64, T[], Int32, Int32)如何使用 UnmanagedMemoryAccessor.ReadArray<T> (Int64, T[], Int32, Int32)
【发布时间】:2017-09-14 04:55:21
【问题描述】:

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

  1. 结构数据{public int a;公共诠释 b;公共字节[] ;}
  2. 静态数据_sdata =新数据(); 静态数据_mydata =新数据(); _mdata.byte = _sdata.byte = 新字节[2] ;
  3. _mmf = MemoryMappedFile.CreateNew("test", 10);
  4. var ired = _mmf.CreateViewAccessor();
  5. ired.Read(0, out mdata);here has Error 那么,T 结构应该纠正什么??

【问题讨论】:

    标签: c# shared-memory


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2016-03-15
      • 1970-01-01
      相关资源
      最近更新 更多