using System.Threading.Tasks;
using System.Collections.Generic;
public static async Task Main()
var tasks = new List<Task>();
tasks.Add(Task.Run(() => Tester.ThrowWhen3(1)));
tasks.Add(Task.Run(() => Tester.ThrowWhen3(2)));
tasks.Add(Task.Run(() => Tester.ThrowWhen3(3)));
tasks.Add(Task.Run(() => Tester.ThrowWhen3(4)));
tasks.Add(Task.Run(() => Tester.ThrowWhen3(5)));
tasks.Add(Task.Run(() => Tester.ThrowWhen3(6)));
Task t = Task.WhenAll(tasks.ToArray());
public static class Tester
public static void ThrowWhen3(int x)
if(x == 3) throw new Exception("throw for " + x);