Асинхронные функции будут выполняться одна за другой.
Вы можете запустить все и дождаться завершения всего, прежде чем присваивать результаты параметрам следующих функций.
var func1Task = Func1();
var func2Task = Func2();
var func3Task = Func3();
var func4Task = Func4();
await Task.WhenAll(func1Task, func2Task, func3Task, func4Task)
var result =
GetGesult(await func1Task , await func2Task, await func3Task, await func4Task);