public DBRoleInfo AddDBRoleInfo(DBRoleInfo dbRoleInfo) { MyWeakReference weakRef = null; lock (this.DictRoleInfos) { if (this.DictRoleInfos.TryGetValue(dbRoleInfo.RoleID, out weakRef)) { DBRoleInfo old = weakRef.Target as DBRoleInfo; if (null != old) { return(old); } weakRef.Target = dbRoleInfo; } else { this.DictRoleInfos.Add(dbRoleInfo.RoleID, new MyWeakReference(dbRoleInfo)); } } lock (this.DictRoleName2ID) { string formatedRoleName = Global.FormatRoleName(dbRoleInfo); this.DictRoleName2ID[formatedRoleName] = dbRoleInfo.RoleID; } return(dbRoleInfo); }
public DBUserInfo FindDBUserInfo(string userID) { DBUserInfo dbUserInfo = null; MyWeakReference weakRef = null; lock (this.DictUserInfos) { if (this.DictUserInfos.Count > 0) { if (this.DictUserInfos.TryGetValue(userID, out weakRef)) { if (weakRef.IsAlive) { dbUserInfo = (weakRef.Target as DBUserInfo); } } } } if (null != dbUserInfo) { lock (dbUserInfo) { dbUserInfo.LastReferenceTicks = DateTime.Now.Ticks / 10000L; } } return(dbUserInfo); }
/// <summary> /// 定位用户信息 /// </summary> /// <param name="userID"></param> /// <returns></returns> public DBRoleInfo FindDBRoleInfo(int roleID) { DBRoleInfo dbRoleInfo = null; MyWeakReference weakRef = null; lock (DictRoleInfos) { if (DictRoleInfos.Count > 0) { if (DictRoleInfos.TryGetValue(roleID, out weakRef)) { if (weakRef.IsAlive) //判断是否仍在存活 { dbRoleInfo = weakRef.Target as DBRoleInfo; } } } } if (null != dbRoleInfo) { lock (dbRoleInfo) { dbRoleInfo.LastReferenceTicks = DateTime.Now.Ticks / 10000; } } return(dbRoleInfo); }
public void RemoveDBUserInfo(string userID) { MyWeakReference weakRef = null; lock (this.DictUserInfos) { if (this.DictUserInfos.TryGetValue(userID, out weakRef)) { weakRef.Target = null; } } }
/// <summary> /// 添加用户信息到字典中 /// </summary> /// <param name="dbUserInfo"></param> public void AddDBUserInfo(DBUserInfo dbUserInfo) { MyWeakReference weakRef = null; lock (DictUserInfos) { if (DictUserInfos.TryGetValue(dbUserInfo.UserID, out weakRef)) { weakRef.Target = dbUserInfo; } else { DictUserInfos.Add(dbUserInfo.UserID, new MyWeakReference(dbUserInfo)); } } }
public List <DBRoleInfo> GetCachingDBRoleInfoListByFaction(int faction) { List <DBRoleInfo> dbRoleInfoList = new List <DBRoleInfo>(); lock (this.DictRoleInfos) { foreach (int key in this.DictRoleInfos.Keys) { MyWeakReference weakRef = this.DictRoleInfos[key]; DBRoleInfo dbRoleInfo = weakRef.Target as DBRoleInfo; if (dbRoleInfo != null && dbRoleInfo.Faction == faction) { dbRoleInfoList.Add(dbRoleInfo); } } } return(dbRoleInfoList); }
public DBRoleInfo FindDBRoleInfo(ref int roleID) { if (roleID < 200000) { int tempRoleID = roleID; roleID = SingletonTemplate <RoleMapper> .Instance().GetLocalRoleIDByTempID(tempRoleID); } DBRoleInfo result; if (roleID <= 0) { result = null; } else { DBRoleInfo dbRoleInfo = null; MyWeakReference weakRef = null; lock (this.DictRoleInfos) { if (this.DictRoleInfos.Count > 0) { if (this.DictRoleInfos.TryGetValue(roleID, out weakRef)) { if (weakRef.IsAlive) { dbRoleInfo = (weakRef.Target as DBRoleInfo); } } } } if (null != dbRoleInfo) { lock (dbRoleInfo) { dbRoleInfo.LastReferenceTicks = DateTime.Now.Ticks / 10000L; } } result = dbRoleInfo; } return(result); }
public void RemoveDBRoleInfo(int roleID) { string formatedRoleName = null; MyWeakReference weakRef = null; lock (this.DictRoleInfos) { if (this.DictRoleInfos.TryGetValue(roleID, out weakRef)) { formatedRoleName = Global.FormatRoleName(weakRef.Target as DBRoleInfo); weakRef.Target = null; } } lock (this.DictRoleName2ID) { if (null != formatedRoleName) { this.DictRoleName2ID.Remove(formatedRoleName); } } }
/// <summary> /// 从字典中获取缓存的用户信息 /// </summary> /// <param name="dbRoleInfo"></param> public List <DBRoleInfo> GetCachingDBRoleInfoListByFaction(int faction) { List <DBRoleInfo> dbRoleInfoList = new List <DBRoleInfo>(); MyWeakReference weakRef = null; DBRoleInfo dbRoleInfo = null; lock (DictRoleInfos) { foreach (var key in DictRoleInfos.Keys) { weakRef = DictRoleInfos[key]; dbRoleInfo = weakRef.Target as DBRoleInfo; if (null != dbRoleInfo && dbRoleInfo.Faction == faction) { dbRoleInfoList.Add(dbRoleInfo); } } } return(dbRoleInfoList); }
public DBUserInfo AddDBUserInfo(DBUserInfo dbUserInfo) { MyWeakReference weakRef = null; lock (this.DictUserInfos) { if (this.DictUserInfos.TryGetValue(dbUserInfo.UserID, out weakRef)) { DBUserInfo old = weakRef.Target as DBUserInfo; if (null != old) { return(old); } weakRef.Target = dbUserInfo; } else { this.DictUserInfos.Add(dbUserInfo.UserID, new MyWeakReference(dbUserInfo)); } } return(dbUserInfo); }
/// <summary> /// 添加用户信息到字典中 /// </summary> /// <param name="dbRoleInfo"></param> public void AddDBRoleInfo(DBRoleInfo dbRoleInfo) { MyWeakReference weakRef = null; lock (DictRoleInfos) { if (DictRoleInfos.TryGetValue(dbRoleInfo.RoleID, out weakRef)) { weakRef.Target = dbRoleInfo; } else { DictRoleInfos.Add(dbRoleInfo.RoleID, new MyWeakReference(dbRoleInfo)); } } lock (DictRoleName2ID) { string formatedRoleName = Global.FormatRoleName(dbRoleInfo); DictRoleName2ID[formatedRoleName] = dbRoleInfo.RoleID; } }