等待任务清单 [英] Await for list of Tasks
本文介绍了等待任务清单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试做这样的事情:
I'm trying to do something like this:
foreach (var o in ObjectList)
{
CalculateIfNeedToMakeTaskForO(o);
if (yes)
TaskList.Add(OTaskAsync());
}
现在,我想等待所有这些任务完成. 除了
Now I would like to wait for all these tasks to complete. Besides doing
foreach(var o in ObjectList)
{
Result.Add("result for O is: "+await OTaskAsync());
}
我能做些什么吗? (更好,更优雅,更正确")
Is there anything I could do? (better, more elegant, more "correct")
推荐答案
您正在寻找 编辑:由于WaitAll
仅接受一个任务数组(或以可变参数数组形式的Task
列表),因此必须转换您的Enumerable.如果需要扩展方法,可以执行以下操作:
Since WaitAll
only takes an array of task (or a list of Task
in the form of a variable argument array), you have to convert your Enumerable. If you want an extension method, you can do something like this:
public static void WaitAll(this IEnumerable<Task> tasks)
{
Task.WaitAll(tasks.ToArray());
}
TaskList.WaitAll();
但这实际上只是语法糖.
But that's really only syntactic sugar.
这篇关于等待任务清单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文