【发布时间】:2014-05-31 10:04:26
【问题描述】:
以下 sn-p 编译,但我希望它等待任务结果,而不是给我一个 List<Task<T>>。
var foo = bars.Select(async bar => await Baz(bar)).ToList()
正如here指出的,你需要使用Task.WhenAll:
var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
await Task.WhenAll(tasks);
但a comment 指出Select() 内的async 和await 是不需要的:
var tasks = foos.Select(foo => DoSomethingAsync(foo)).ToList();
类似的问题here 有人试图在Where() 中使用异步方法。
所以 LINQ 语句中的 async 和 await 是合法的语法,但它是什么都不做还是有一定的用途?
【问题讨论】:
标签: c# linq asynchronous c#-5.0