using System.Threading.Tasks;
public static async void Main()
var results = new int[3];
Task.Factory.StartNew(() => results[0] = GetSomething1()),
Task.Factory.StartNew(() => results[1] = GetSomething2()),
Task.Factory.StartNew(() => results[2] = GetSomething3())
await Task.WhenAll(tasks);
Console.WriteLine(results[0]);
Console.WriteLine(results[1]);
Console.WriteLine(results[2]);
public static int GetSomething1() { return 1; }
public static int GetSomething2() { return 22; }
public static int GetSomething3() { return 333; }