using System.Collections.Generic;
using System.Threading.Tasks;
public static void Main()
Task.Run(() => Example()).Wait();
static async Task Example()
List<Task> listOfTasks = new List<Task>();
for (int i = 0; i < max; i++)
listOfTasks.Add(ProcessSomething(i));
await Task.WhenAll(listOfTasks);
static async Task ProcessSomething(int index)
Console.WriteLine("Process" + index.ToString() + " started");
Console.WriteLine("Process" + index.ToString() + " finished");