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()); } }