我有3个任务:
private async Task<Cat> FeedCat() {} private async Task<House> SellHouse() {} private async Task<Tesla> BuyCar() {}
它们都需要先运行,然后我的代码才能继续,并且我还需要它们的结果。没有结果有什么共同点
如何调用并等待3个任务完成然后获得结果?
使用完后WhenAll,您可以使用以下命令分别提取结果await:
WhenAll
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;
您也可以使用Task.Result(因为到目前为止,您已经知道它们都已成功完成)。但是,我建议使用,await因为它显然是正确的,而Result在其他情况下可能会引起问题。
Task.Result
Result