以异步方式运行I \ O束线程

时间:2017-12-13 14:30:06

标签: c# .net async-await

我有大量的WCF服务调用。简单地:

foreach (var node in tree.Nodes) {
    // some preparing code here
    ....

    treeView.TocStorageInstance.UpdateNode(node) //network call
}

我想将所有这些逐个执行的网络调用并行 - 正如我在提琴手中看到的那样。

尝试下一种方法并不成功:

    var nodesToUpdate = new List<Task>();
    foreach (var node in tree.Nodes) {
        // some preparing code here
        ....
        nodesToUpdate.Add(await Task.Run(() => treeView.TocStorageInstance.UpdateNode(node)));
    }

    await Task.WhenAll(nodesToUpdate);

所有调用仍然在foreach语句中逐个执行。

有可能吗?

0 个答案:

没有答案