using System.Threading.Tasks;
public static async Task Main()
var tasks = new Task[10];
for (int i = 0; i < tasks.Length; i++)
tasks[i] = Task.Run(() => Console.WriteLine(IdGenerator.GetNextId()));
await Task.WhenAll(tasks);
public static class IdGenerator
public static int GetNextId()