C#内存映射MemoryMappedFile-纯内存映射应用

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

你可能感兴趣的:(c#,windows,开发语言)