并行执行任务 - Silverlight

时间:2017-11-22 02:23:51

标签: c# asynchronous silverlight async-await

我想开始一系列任务并等待所有任务完成。

这个问题或多或少与这个问题相同: Executing tasks in parallel

但是,Silverlight的答案并不相同,因为没有与Task.WhenAll()等效的方法。

这应该有效,但我收到错误

  

启动可能不会在承诺式任务上调用。

        foreach (var displayThumbnailTask in displayThumbnailTasks)
        {
            displayThumbnailTask.Start();
        }

        foreach (var task in displayThumbnailTasks)
        {
            await task;
        }

1 个答案:

答案 0 :(得分:3)

"可能不会在承诺式任务上调用Start。"对于一件简单的事情来说,这是一个有点误导性的信息:任务已经开始了。

因此,您可以省略第一个循环。

Silverlight没有Task.WhenAll,但如果您使用Microsoft.Bcl.Async,则其中包含的TaskEx.WhenAll相同。

await TaskEx.WhenAll(displayThumbnailTasks);

Execute parallel tasks with async/await