如何在内存映射文件中共享列表值

本文关键字:共享 列表 文件 映射 内存 | 更新日期: 2023-09-27 18:32:51

我有一个带有datagridview的Windows表单,我正在将特定的列值读取到列表中。我需要在单个内存映射文件中共享列表的所有值,但以下是我的担忧:1.查找列表的大小(以字节为单位)。2.需要共享列表的所有项目。

这是我共享单个变量值的示例代码:

  string MyName = "Seema";
  int totalBytes = MyName.Length * sizeof(Char) + 4;
  public List<string> myList = new List<string>();
MemoryMappedFile MyText = MemoryMappedFile.CreateOrOpen("MyGlobalData", howManyBytes);
                byte[] array1 = new byte[howManyBytes];
                array1 = GetBytes(Name);
                using (var accessor = MyText.CreateViewAccessor(0, array1.Length))
                {
                    accessor.WriteArray(0, array1, 0, array1.Length);
                }

 static byte[] GetBytes(string str)
        {
            byte[] bytes = new byte[str.Length * sizeof(char)];
            System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
            return bytes;
        }

假设 Mylsit 有项目 1。苹果 2.芒果 3.菠萝

请指导我如何继续上述代码

如何在内存映射文件中共享列表值

您将需要使用锁定(互斥锁),并希望将数组大小存储为 mmf 中的第一个元素。