public async Task StartPinging() { Logger = new RequestLogger(); Logger.AddFailureWatch(this); Timer = new Stopwatch(); Timer.Start(); var pingTasks = RequestUris.Select(uri => new ServerPinger(uri.Uri, TimeSpan.Zero, Logger).BeginPinging(TokenSource.Token)); // Tasks are running... now we just wait... var completeTask = Task.WhenAll(pingTasks); await completeTask; Timer.Stop(); }
public ServerPinger(Uri request, TimeSpan delay, RequestLogger log) { RequestUri = request; TimeDelay = delay; Log = log; }