public void Start() { if (!worker.IsBusy) { totalGames = _rounds * _players.Count * (_allowSelfPlay ? _players.Count : (_players.Count - 1)); OnTournamentStatus?.Invoke(new TournamentStatus(0, totalGames)); worker.RunWorkerAsync(); } }
public void Start() { if (!worker.IsBusy) { if (_tournamentType == TournamentType.RoundRobin) { totalGames = _rounds * _players.Count * (_allowSelfPlay ? _players.Count : (_players.Count - 1)); } else if (_tournamentType == TournamentType.Swiss) { totalGames = _rounds * (_players.Count % 2 == 1 ? _players.Count - 1 : _players.Count); } OnTournamentStatus?.Invoke(new TournamentStatus(0, totalGames, 0)); worker.RunWorkerAsync(); } }
private void Worker_ProgressChanged(object sender, ProgressChangedEventArgs e) { OnTournamentStatus?.Invoke(e.UserState as TournamentStatus); }