Was passiert eigentlich bei der Verwendung von async / await in einer LINQ-Anweisung?
Das folgende Snippet wird kompiliert, aber ich würde erwarten, dass es auf das Ergebnis der Aufgabe wartet, anstatt mir ein zu gebenList<Task<T>>
.
var foo = bars.Select(async bar => await Baz(bar)).ToList()
Wie erwähntHiermüssen Sie verwendenTask.WhenAll
:
var tasks = foos.Select(async foo => await DoSomethingAsync(foo)).ToList();
await Task.WhenAll(tasks);
Aberein Kommentar weist darauf hin, dass dieasync
undawait
in derSelect()
wird nicht gebraucht:
var tasks = foos.Select(foo => DoSomethingAsync(foo)).ToList();
Eine ähnliche FrageHier wo jemand versucht, eine asynchrone Methode innerhalb einesWhere()
.
Damitasync
undawait
In einer LINQ-Anweisung gibt es eine zulässige Syntax, aber tut sie überhaupt nichts oder hat sie eine bestimmte Verwendung?