【发布时间】:2014-04-02 18:24:31
【问题描述】:
使用 async/await 模型,我有一个方法可以对 Web 服务进行 3 次不同的调用,然后返回结果的联合。
var result1 = await myService.GetData(source1);
var result2 = await myService.GetData(source2);
var result3 = await myService.GetData(source3);
allResults = Union(result1, result2, result3);
使用典型的等待,这 3 个调用将彼此同步执行。我将如何让它们同时执行并在它们完成时加入结果?
【问题讨论】:
-
GetData方法的返回类型是什么? -
没关系。流、字符串、字节[]...
-
不要立即等待它们,将返回的值存储在数组或列表中并使用
await Task.WhenAll(...);。 -
是的,刚刚发现这篇文章谈到了一点关于WhenAll msdn.microsoft.com/en-us/magazine/jj991977.aspx
标签: c# async-await