我有一个看起来像这样的功能:
public async Task<decimal> GoToWeb(string Sym){}
通过字符串列表调用它的最佳方式是什么?
答案 0 :(得分:5)
Here's MSDN上有关使用async-await
并行处理multilpe任务的文章。而here's另一个专门针对任务集合。
简而言之,您可以执行以下操作之一:
启动所有任务,然后await
每个任务。它们都将并行运行,一旦完成,程序将继续运行。
将您的任务放入集合中,然后使用await
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);