using System.Threading.Tasks;
public static void Main()
var longRunningTasks = Enumerable
.Select(_ => (Func<Task>)(() => Task.Delay(TimeSpan.FromMilliseconds(100))))
foreach (var longRunningTask in longRunningTasks)
Task.Run(async () => await longRunningTask());
Console.WriteLine($"Task {++index} started");
Console.WriteLine("All Tasks started");
longRunningTasks = Enumerable
.Select(_ => (Func<Task>)(() => Task.Delay(TimeSpan.FromMilliseconds(100))))
foreach (var longRunningTask in longRunningTasks)
Console.WriteLine($"Task {++index} started");
Console.WriteLine("All Tasks started");
longRunningTasks = Enumerable
.Select(_ => (Func<Task>)(() => Task.Delay(TimeSpan.FromMilliseconds(100))))
foreach (var longRunningTask in longRunningTasks)
Console.WriteLine($"Task {++index} started");
Console.WriteLine("All Tasks started");