我想开始一系列任务并等待所有任务完成。
这个问题或多或少与这个问题相同: Executing tasks in parallel
但是,Silverlight的答案并不相同,因为没有与Task.WhenAll()等效的方法。
这应该有效,但我收到错误
启动可能不会在承诺式任务上调用。
foreach (var displayThumbnailTask in displayThumbnailTasks)
{
displayThumbnailTask.Start();
}
foreach (var task in displayThumbnailTasks)
{
await task;
}
答案 0 :(得分:3)
"可能不会在承诺式任务上调用Start。"对于一件简单的事情来说,这是一个有点误导性的信息:任务已经开始了。
因此,您可以省略第一个循环。
Silverlight没有Task.WhenAll
,但如果您使用Microsoft.Bcl.Async
,则其中包含的TaskEx.WhenAll
相同。
await TaskEx.WhenAll(displayThumbnailTasks);