public override void Stop() { if (base.GameState == eGameState.GameOver) { this.m_gameState = eGameState.Stopped; List <Player> players = base.GetAllFightPlayers(); foreach (Player p in players) { if (p.IsActive && !p.FinishTakeCard && p.CanTakeOut > 0) { this.TakeCard(p, true); } } Dictionary <int, Player> players2; Monitor.Enter(players2 = this.m_players); try { this.m_players.Clear(); } finally { Monitor.Exit(players2); } MapMgr.ReleaseMapInstance(this.m_map); base.Stop(); } }