我正在尝试做这样的事情:
foreach (var o in ObjectList)
{
CalculateIfNeedToMakeTaskForO(o);
if (yes)
TaskList.Add(OTaskAsync());
}
现在我想等待所有这些任务完成。 除了做
foreach(var o in ObjectList)
{
Result.Add("result for O is: "+await OTaskAsync());
}
有什么我可以做的吗? (更好,更优雅,更“正确”)
最佳答案
你正在寻找Task.WhenAll
:
var tasks = ObjectList
.Where(o => CalculateIfNeedToMakeTaskForO(o))
.Select(o => OTaskAsync(o))
.ToArray();
var results = await Task.WhenAll(tasks);
var combinedResults = results.Select(r => "result for O is: " + r);
关于c# - 等待任务列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621632/