如何在内存映射文件中共享列表值
本文关键字:共享 列表 文件 映射 内存 | 更新日期: 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 中的第一个元素。