代码之家  ›  专栏  ›  技术社区  ›  AK_

列表上的异步函数

  •  5
  • AK_  · 技术社区  · 12 年前

    我有一个函数如下所示:

    public async Task<decimal> GoToWeb(string Sym){}
    

    通过字符串列表调用它的最佳方式是什么?

    1 回复  |  直到 12 年前
        1
  •  5
  •   svick    12 年前

    Here's MSDN上一篇关于使用的文章 async-await 以并行处理多类型任务。和 here's 另一个专门处理一系列任务。

    简而言之,您可以执行以下操作之一:

    1. 启动所有任务,然后 await 他们每个人。它们都将并行运行,一旦它们全部完成,您的程序将继续。

    2. 将您的任务放入集合中,然后使用 等候 Task.WhenAll 等待多个任务。

    第二种方法的示例如下:

    List<string> Syms = ... // Create your list of strings
    IEnumerable<Task<decimal>> tasks = from Sym in Syms select GoToWeb(Sym);
    decimal[] results = await Task.WhenAll(tasks);