using System.Net.NetworkInformation;
using System.Threading.Tasks;
using System.Collections.Generic;
public static void Main()
var tasks = new List<Task>();
"www.northwindtraders.com",
tasks.Add(Task.Run(() => {
var reply = png.Send(url);
if(!(reply.Status == IPStatus.Success))
Interlocked.Increment(ref failed);
throw new TimeoutException("Unable to reach " + url + ".");
Interlocked.Increment(ref failed);
Task t = Task.WhenAll(tasks);
if(t.Status == TaskStatus.RanToCompletion)
Console.WriteLine("All ping attempts succeeded.");
else if (t.Status == TaskStatus.Faulted)
Console.WriteLine("{0} ping attempts failed", failed);