Was passiert eigentlich bei der Verwendung von async/await innerhalb einer LINQ-Anweisung?

Dem folgenden snippet kompiliert, aber ich würde erwarten, dass es auf die Aufgabe führen, anstatt dass Sie mir einen List<Task<T>>.

var foo = bars.Select(async bar => await Baz(bar)).ToList()

Als darauf hingewiesen,hier, müssen Sie Task.WhenAll:

var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
await Task.WhenAll(tasks);

Aber ein Kommentar weist darauf hin, dass die async und await innerhalb der Select() ist nicht erforderlich:

var tasks = foos.Select(foo => DoSomethingAsync(foo)).ToList();

Eine ähnliche Frage hier, wo jemand versucht, eine async-Methode in ein Where().

So async und await innerhalb einer LINQ-Anweisung Legale syntax, aber es funktioniert gar nichts zu tun oder hat es einen bestimmten verwenden?

InformationsquelleAutor user247702 | 2014-04-16
Schreibe einen Kommentar