1、创建
//创建纯内存方式的内存映射
string strMemName = "MemoryShareTest";
MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen(strMemName, 1024 * 1024, MemoryMappedFileAccess.ReadWrite);
2、生命周期
特别注意MemoryMappedFile的生命周期,其创建后在没有使用情况下将被系统删除。若跨进程、线程调整必须确保在通信过程中一直有引用存在,否则会因无调整情况被系统清除而造成通信失败。
3、读写-序列化类方式
//配置类为可序列化对象
[Serializable]
public class ShareInfo
{
public string strSessionId;
public UserInfo user = new UserInfo();//自定义类
}
//读取
MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen(strMemName, 1024 * 1024, MemoryMappedFileAccess.ReadWrite);
MemoryMappedViewStream stream = mmf.CreateViewStream();
stream.Seek(0, SeekOrigin.Begin);
ShareInfo ret = bf.Deserialize(stream) as ShareInfo;
//写入
ShareInfo share = new ShareInfo();//初始化要写入数据
MemoryMappedFile mmf = MemoryMappedFile.CreateOrOpen(strMemNam