Ejemplo n.º 1
0
        private async Task MatchingTask()
        {
            //Wait some time
            DebugLogWriteLine("MatchingTask started, waiting");
            await Task.Delay(30000);

            if (!Active)
            {
                DebugLogWriteLine("MatchingTask canceled. Set Active to false");
                return;
            }
            //Get all users
            DebugLogWriteLine("MatchingTask Matching");
            DateVoiceLobbies.Clear();
            DateVoiceLobbies.AddRange(GetVoiceLobbies(true));
            RefreshUsersInLobbies();
            //Match users
            //Move pairs
            TryMatchUsers();

            //Removeitself or restart
            DateVoiceLobbies.Clear();
            DateVoiceLobbies.AddRange(GetVoiceLobbies(true));
            RefreshUsersInLobbies();
            if (UsersInLobbies.Count > 4)
            {
                //Restart? if not same gender
                CurrentMatchingTask = MatchingTask();
                _ = CurrentMatchingTask.ConfigureAwait(false);
            }
            else
            {
                CurrentMatchingTask = null;
            }
        }
Ejemplo n.º 2
0
 private void TryStartMatchingTask()
 {
     if (CurrentMatchingTask == null && Active)
     //await (CurrentMatchingTask = MatchingTask()).ConfigureAwait(false);
     {
         CurrentMatchingTask = MatchingTask();
         CurrentMatchingTask.ConfigureAwait(false);
     }
 }