public async void DoVoting(Voting voting) { int seconds = voting.Milliseconds / 1000; Client.SendMessage(Channel, string.Format("Voting '{0}' has started! Voting runs {1} seconds.", voting.ActionName, seconds)); voting.IsActive = true; await Task.Delay(voting.Milliseconds); voting.IsActive = false; Client.SendMessage(Channel, string.Format("Voting '{0}' has ended!", voting.ActionName)); var result = voting.GetResult(); ShowVotingResult(result); voting.AfterVote?.Invoke(Obs, result); voting.ResetVotes(); }