private async Task LoopMethodFailure2(IThreadLoopEvent loopEvent) { _loopMethodCalled++; await Task.Run(() => { throw new Exception("Something bad happened"); } ); }
private async Task ProcessEventQueue(IThreadLoopEvent loopEvent) { while (true) { EventQueueItem item = null; var didDequeue = _queue.TryDequeue(out item); if (!didDequeue) { return; } FireEvent(item.Event); if (loopEvent.IsCancelled) { break; } } await Task.CompletedTask; }
private Task RunEngine(IThreadLoopEvent resetEvent) { if (!IsRunning) { resetEvent.Cancel(); return(Task.CompletedTask); } try { // Record how much time has passed var elapsed = _clock.Elapsed - _lastElapsedTime; // Save last elapsed time so that we get chunks of time - rather than an increased total time _lastElapsedTime = _clock.Elapsed; // Increment game clocks foreach (var gameMeta in _games) { if (resetEvent.IsCancelled) { break; } var gameClock = gameMeta.GameClock; // If game is complete - then skip if (gameClock.IsComplete) { continue; } // IncrementGameClock(gameClock, elapsed); //_log.InfoFormat( // "{0} - Q{1} {2}", // game.Name, // gameClock.Quarter, // gameClock.Time // ); // Push changes to any listener lock (_lockObject) { foreach (var listener in _listeners) { listener.GameClockChange( gameMeta.Game, gameMeta.GameClock ); } } } // Add possible scores foreach (var gameMeta in _games) { if (resetEvent.IsCancelled) { break; } // If game is complete - then skip if (gameMeta.GameClock.IsComplete) { continue; } var score = AddPossibleGameScore(gameMeta.Game); if (score.IsNull()) { continue; } _log.InfoFormat( "{0} - {1}, +{2}", gameMeta.Game.Name, score.PlayerName, score.Points ); // Push changes to any listener lock (_lockObject) { foreach (var listener in _listeners) { listener.ScoreChange(gameMeta.Game, gameMeta.GameClock, score); } } } } catch (Exception ex) { _log.Error(ex, ex.Message); } return(Task.CompletedTask); }
private Task LoopMethodFailure(IThreadLoopEvent loopEvent) { _loopMethodCalled++; throw new Exception("Something bad happened"); }
private Task LoopMethod(IThreadLoopEvent loopEvent) { _loopMethodCalled++; return(Task.CompletedTask); }