using System.Collections.Generic;
using System.Collections;
using System.Linq.Expressions;
using System.Threading.Tasks;
public static void Main()
public static async Task AsyncMain()
Console.WriteLine($"Started at {DateTime.Now}");
var tasks = new List<Task>();
for(var i = 0; i < 10; i++)
tasks.Add(CpuHeavyComputation(i));
await Task.WhenAll(tasks);
Console.WriteLine($"Completed at {DateTime.Now}");
public static async Task LongRunningTask(int i)
public static async Task CpuHeavyComputation(int i)