You can simply create List<Task>and then use Task.WhenAll:
var tasks = new List<Task>();
var task1 = Func1Async();
tasks.Add(task1);
var task2 = Func2Async();
tasks.Add(task2);
...
await Task.WhenAll(tasks);
, , , :
var result1 = await task1;
var result2 = await task2;