private void HandleClientConnected(IUserToken token) { this._idToToken[token.id] = token; StepLocker stepLocker = new StepLocker(this); stepLocker.AddUser(token.id); this._stepLockers.Add(stepLocker); ThreadPool.QueueUserWorkItem(state => { stepLocker.Start(); while (!stepLocker.finished) { stepLocker.Update(); Thread.Sleep(10); } }); Logger.Log($"创建战场:{stepLocker.id}"); }
private void HandleClientDisconnected(IUserToken token) { this._idToToken.Remove(token.id); StepLocker stepLocker = null; foreach (StepLocker s in this._stepLockers) { if (!s.HasUser(token.id)) { continue; } stepLocker = s; break; } if (stepLocker != null) { stepLocker.RemoveUser(token.id); if (stepLocker.userCount == 0) { this._stepLockers.Remove(stepLocker); } } }