/// <summary> /// 获取一个内存映射 /// </summary> /// <param name="memName"></param> /// <returns></returns> protected static AdvanceBinaryMemoryData GetMemory(string memName) { AdvanceBinaryMemoryData data = null; if (!_MemoryManager.ContainsKey(memName)) { data = new AdvanceBinaryMemoryData(memName, MEMORY_DEFAULT_CAPACITY); _MemoryManager.Add(memName, data); } return(_MemoryManager[memName]); }
/// <summary> /// 删除已保存的内存映射文件 /// </summary> /// <param name="memName"></param> protected static void RemoveMemory(string memName) { if (_MemoryManager.ContainsKey(memName)) { try { AdvanceBinaryMemoryData data = _MemoryManager[memName]; data.Dispose(); } catch (Exception e) { Log($"ShareMemory.RemoveMemory({memName}):{e.Message}", 1); } _MemoryManager.Remove(memName); } }
/// <summary> /// 读取一个对象 /// </summary> /// <param name="memName"></param> /// <param name="obj"></param> /// <returns></returns> public static T ReadObject <T>(string memName) { AdvanceBinaryMemoryData brm = GetMemory(memName); return(brm.ReadObject <T>(memName)); }
/// <summary> /// 从共享内从中读取字符串 /// </summary> /// <param name="memName"></param> /// <returns></returns> public static string ReadString(string memName) { AdvanceBinaryMemoryData brm = GetMemory(memName); return(brm.ReadString(memName)); }
/// <summary> /// 将byte数据写入到共享区域 /// </summary> /// <param name="memName"></param> /// <param name="info"></param> public static bool Write(string memName, byte[] data, int dataType = 0) { AdvanceBinaryMemoryData brm = GetMemory(memName); return(brm.Write(memName, data, dataType)); }
/// <summary> /// 将一个对象写入指定共享内存 /// </summary> /// <param name="memName"></param> /// <param name="obj"></param> public static bool WriteObject(string memName, object obj) { AdvanceBinaryMemoryData brm = GetMemory(memName); return(brm.WriteObject(memName, obj)); }
/// <summary> /// 将字符串写入到指定名称的内存映射中 /// </summary> /// <param name="memName"></param> /// <param name="info"></param> public static void Write(string memName, string data) { AdvanceBinaryMemoryData brm = GetMemory(memName); brm.Write(memName, data); }