Esempio n. 1
0
        private async void Ping()
        {
            var pinger = new TwitchServersPinger();

            foreach (var server in servers)
            {
                serverNameToControl[server.Name].Pinging    = true;
                serverNameToControl[server.Name].ServerPing = await Task.Run(() => { return(pinger.Ping(server).Milliseconds); });

                serverNameToControl[server.Name].Pinging = false;
            }
        }
Esempio n. 2
0
        private void PingParallelEvents()
        {
            var pinger = new TwitchServersPinger();

            pinger.PingCompleted += (sender, args) =>
            {
                var control = serverNameToControl[args.Server.Name];
                control.ServerPing = args.Ping.Milliseconds;
                control.Pinging    = false;
            };
            foreach (var server in servers)
            {
                serverNameToControl[server.Name].Pinging = true;
                var task = new Task(() => pinger.PingAsyncVoid(server));
                task.Start(TaskScheduler.FromCurrentSynchronizationContext());
            }
        }
Esempio n. 3
0
        private async void PingParallelAwait()
        {
            var pinger    = new TwitchServersPinger();
            var pingTasks = new List <Task <TwitchPingResult> >();

            foreach (var server in servers)
            {
                serverNameToControl[server.Name].Pinging = true;
                var pingTask = Task.Run <TwitchPingResult>(() => pinger.PingAsyncTaskArgs(server));
                pingTasks.Add(pingTask);
            }
            while (pingTasks.Count > 0)
            {
                var firstFinishedTask = await Task.WhenAny(pingTasks);

                pingTasks.Remove(firstFinishedTask);

                var pingResult = await firstFinishedTask;
                serverNameToControl[pingResult.Server.Name].ServerPing = pingResult.Ping.Milliseconds;
                serverNameToControl[pingResult.Server.Name].Pinging    = false;
            }
        }