【问题标题】:Executing Tasks in Parallel - Silverlight并行执行任务 - Silverlight
【发布时间】:2017-11-22 16:08:51
【问题描述】:

我想开始一堆任务并等待它们全部完成。

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

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

这应该可以,但我得到一个错误

不能在 promise 样式的任务上调用 Start。

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

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

【问题讨论】:

    标签: c# asynchronous silverlight async-await


    【解决方案1】:

    “不能在 promise 样式的任务上调用 Start。”对于简单的事情来说,这是一个有点误导性的消息:任务已经开始。

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

    Silverlight 没有Task.WhenAll,但如果您使用的是Microsoft.Bcl.Async,它包含TaskEx.WhenAll 是一样的。

    await TaskEx.WhenAll(displayThumbnailTasks);
    

    Execute parallel tasks with async/await

    【讨论】:

    • 优秀。正是我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-18
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多