Следующий фрагмент компиляции, но я ожидаю, что он ждет результат задачи вместо того, чтобы дать мне List<Task<T>>
.
var foo = bars.Select(async bar => await Baz(bar)).ToList()
Как указано здесь, вам нужно использовать Task.WhenAll
:
var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
await Task.WhenAll(tasks);
Но комментарий указывает, что async
и await
внутри Select()
не нужны:
var tasks = foos.Select(foo => DoSomethingAsync(foo)).ToList();
Аналогичный вопрос здесь, где кто-то пытается использовать метод async внутри Where()
.
Итак, async
и await
внутри оператора LINQ - это легальный синтаксис, но делает он вообще ничего или не использует его?