我有一个这样的情况:
var retrievalTasks = new Task[2];
retrievalTasks[0] = GetNodesAsync();
retrievalTasks[1] = GetAssetsToHandleAsync();
Task.WaitAll(retrievalTasks);
我希望将retrievalTasks[0]
和retrievalTasks[1]
的结果存储在变量中。
我可以通过以下方式实现:
var a = await GetNodesAsync();
var b = await GetAssetsToHandleAsync();;
但是我不想像那样等待两个任务,因为这样它们不会同时执行,对吗?还是我误解了? 我已经看到这个作为一个参考:使用不同结果等待多个任务 但我认为这是一个稍微不同的情况,在我的情况下不起作用。 有什么想法吗? 谢谢
编辑:
await Task.WhenAll(catTask, houseTask, carTask);
var cat = await catTask;
var house = await houseTask;
var car = await carTask;
这似乎需要等待四次才能得到三个结果。然而,@armenm已经展示了如何避免这种情况。