public GameLevel GameStart(int gameId) { try { var level = _service.GameStart(gameId); if (level != null) { long serverTime = GetServerGameTime(); // todo change GameController.StartTime = TimeHelper.NowMilliseconds - serverTime; _pingTimer.Stop(); // DifferenceTime = serverTime; Trace.WriteLine("Game started on server"); // todo долго выполняется (~40 мс), нужно как-то изменить InitializeThreadAndTimers(); Trace.WriteLine("ConnectionManager: thread and timers initialized"); } return(level); } catch (Exception e) { FatalError(e); throw; } }
private void UpdateStatus() { while (Level == null) { Thread.Sleep(100); if (_activeGame != null) { Level = _service.GameStart(_activeGame.GameId); UpdatePlayerList(); } } // close this windows CloseThis(); }