我有3个任务:
private async Task<Cat> FeedCat() {}
private async Task<House> SellHouse() {}
private async Task<Tesla> BuyCar() {}
它们都需要先运行,然后我的代码才能继续,并且我也需要每个的结果。所有结果都没有任何共同点
如何调用并等待 3 个任务完成然后获取结果?
使用后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
可能会在其他情况下导致问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)