using System.Collections.Generic;
using System.Threading.Tasks;
public static async Task Main(string[] args)
var pingTest = new PingTest();
var pingTasks = new List<IPing>()
await Task.WhenAll(pingTasks.Select(t => t.Ping()));
public class WorkingPing : IPing
public async Task<bool> Ping()
public class BrokenPing : IPing
throw new Exception("Ping Broken");