列表上的异步功能

AK_*_*AK_ 5 c# async-await c#-5.0

我有一个看起来像这样的功能:

public async Task<decimal> GoToWeb(string Sym){}
Run Code Online (Sandbox Code Playgroud)

什么是在字符串列表中调用它的最佳方法?

Jon*_*yna 5

这是 MSDN上有关使用async-await并行处理multilpe任务的文章.而这里的另一个具体处理任务的集合.

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

  1. 开始所有任务,然后开始await每个任务.它们都将并行运行,一旦完成,程序将继续运行.

  2. 将您的任务放入集合中,然后用于awaitTask.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);
Run Code Online (Sandbox Code Playgroud)