//定时期的任务处理 private void mSysTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { //定期移去过期的用户缓冲信息 //foreach (KeyValuePair<string, T_UserInfo> user in ServerApp.GetInstance().UserInfoCache) //if (System.DateTime.Now - user.Value.ActivityDate > ServerGlobalData.UserInfoCacheTimeout) //{ // if (ServerApp.GetInstance().UserInfoCache.ContainsKey(user.Value.UserTicket)) // ServerApp.GetInstance().UserInfoCache.Remove(user.Value.UserTicket); //} List <string> userTickets = new List <string>(); foreach (KeyValuePair <string, T_UserInfo> user in ServerApp.GetInstance().UserInfoCache) { if (System.DateTime.Now - user.Value.ActivityDate > ServerGlobalData.UserInfoCacheTimeout) { userTickets.Add(user.Value.UserTicket); } } for (int i = userTickets.Count - 1; i >= 0; i--) { if (ServerApp.GetInstance().UserInfoCache.ContainsKey(userTickets[i])) { ServerApp.GetInstance().UserInfoCache.Remove(userTickets[i]); } } }
private System.Timers.Timer mSysTimer = new System.Timers.Timer(1000 * 60 * 10); //10分钟 /// <summary> /// 获取类的实例 /// </summary> /// <returns>实例</returns> public static ServerApp GetInstance() { if (mInstance == null) { lock (padlock) //解决多线程冲突问题,huhm2008 { if (mInstance == null) { mInstance = new ServerApp(); } } } return(mInstance); }