public bool Logout(string token) { if (RSAProvider.LoadRSA(token)) { try { string userName = ClientManager.GetClientUserName(token); PlayerController.Instance.LogoutPlayer(userName); RSAProvider.RemoveRSA(token); ClientManager.RemoveClient(token); lock (this._callbackDicLocker) { this._callbackDic.Remove(token); } if (!string.IsNullOrEmpty(token)) { new Thread(new ParameterizedThreadStart(o => { this.LogedOut(o.ToString()); })).Start(token); } LogHelper.Instance.AddInfoLog("玩家 [" + userName + "] 退出矿场, IP=" + ClientManager.GetClientIP(token)); return(true); } catch (Exception exc) { LogHelper.Instance.AddErrorLog("Logout Error", exc); return(false); } } else { throw new Exception(); } }