Parallel.ForEach vs Parallel.ForEachAsync vs Task.WhenAll in C#
Verwenden Sie Parallel.ForEach für CPU-lastige Arbeit über Daten im Speicher, Parallel.ForEachAsync für asynchrone E/A über viele Elemente mit einer Parallelitätsgrenze und Task.WhenAll für ein kleines, festes Fan-out, bei dem alle Operationen gleichzeitig laufen sollen und Sie die Ergebnisse benötigen.