using System.Threading.Tasks;
public static async Task Main()
Console.WriteLine("Start");
var t1 = ShortWork("SW1");
var t2 = ShortWork("SW2");
var t3 = LongWork("LW1");
await Task.WhenAll(t1, t2);
Console.WriteLine("Done");
public static async Task ShortWork(string name)
Console.WriteLine($"SHORT Start {name} Thread={Thread.CurrentThread.ManagedThreadId}");
Console.WriteLine($"SHORT End {name} Thread={Thread.CurrentThread.ManagedThreadId}");
public static async Task LongWork(string name)
Console.WriteLine($"LONG Start {name} Thread={Thread.CurrentThread.ManagedThreadId}");
Console.WriteLine($"LONG End {name} Thread={Thread.CurrentThread.ManagedThreadId}");