首页 > 代码库 > 上传程序Dictionary 字典 哈希--多读一写锁ReaderWriterLock

上传程序Dictionary 字典 哈希--多读一写锁ReaderWriterLock

//上传程序Dictionary 字典 哈希/// <summary>/// 车辆控制信息哈斯表,Key是终端号,Value是车辆信息控制对象/// </summary>private Dictionary<string, MsgObject> _MsgObjectHashMap = new Dictionary<string, MsgObject>();public Dictionary<string, MsgObject> MsgObjectHashMap { get { return _MsgObjectHashMap; } }//用法//判断是否包含if (LogicManager.MsgObjectHashMap.ContainsKey(key)){MsgObject controlObject = LogicManager.MsgObjectHashMap[key];//删除LogicManager.MsgObjectHashMap.Remove(key);//处理之后移除   //添加if (!LogicManager.MsgObjectHashMap.ContainsKey(msgObjeKey)){LogicManager.MsgObjectHashMap.Add(msgObjeKey, controlObject);}-----------/// <summary>/// 连接列表/// </summary>public Dictionary<string, CAPacket> CaSessionTable = new Dictionary<string, CAPacket>();//读写锁/// <summary>/// 车辆控制信息哈斯表锁/// </summary>private ReaderWriterLock _MsgObjectHashMapLock = new ReaderWriterLock();public ReaderWriterLock MsgObjectHashMapLock { get { return _MsgObjectHashMapLock; } }//用法:LogicManager.DriverInfoHashMapLock.AcquireReaderLock(5000);//设定5000毫秒 获取读锁if (LogicManager.DriverInfoHashMapLock.IsReaderLockHeld) //判断一下在释放锁{LogicManager.DriverInfoHashMapLock.ReleaseLock(); //或.ReleaseReaderLock();}//更新驾驶员信息LogicManager.DriverInfoHashMapLock.AcquireWriterLock(5000);if (LogicManager.DriverInfoHashMapLock.IsWriterLockHeld){LogicManager.DriverInfoHashMapLock.ReleaseWriterLock();}

 

上传程序Dictionary 字典 哈希--多读一写锁ReaderWriterLock