Async by list

CSharp · Console

/Program.cs

using System;
using System.Threading.Tasks;
using System.Linq;
using System.Collections.Generic;
					
public class Program
{
	public static async Task Foo()
	{
		await Task.Delay(1);
		Console.WriteLine("Foo!");
	}

	public static async Task Bar()
	{
		await Task.Delay(1);
		Console.WriteLine("Bar!");
	}

	public static async Task MainAsync()
	{
		var actions = new List<Func<Task>>
		{
			Foo, Bar
		};
		var tasks = actions.Select( x => x() );
		await Task.WhenAll(tasks);
	}
	
	public static void Main()
	{
		MainAsync().GetAwaiter().GetResult();
		
	}
}
;