I have 3 tasks:
private async Task FeedCat() {}
private async Task SellHouse() {}
private async Task BuyCar() {}
After you use WhenAll, you can pull the results out individually with await:
var catTask = FeedCat();
var houseTask = SellHouse();
var carTask = BuyCar();
await Task.WhenAll(catTask, houseTask, carTask);
var cat = await catTask;
var house = await houseTask;
var car = await carTask;
You can also use Task.Result (since you know by this point they have all completed successfully). However, I recommend using await because it's clearly correct, while Result can cause problems in other scenarios.