Wann sollte ich async/abwarten und wann sollte ich parallel.foreach in C# verwenden? Sind parallel und async/erwarten den gleichen Zweck? Was sind die Unterschiede in ihnen?Async/erwarten und parallel in C#
Antwort
Async/erwarten ist etwa Asynchronität, während Parallel.ForEach
ist etwa Parallelität. Sie sind verwandte Konzepte, aber nicht dasselbe.
Parallel.ForEach
wird verwendet, wenn Sie denselben Vorgang für alle Elemente in einer Auflistung parallel ausführen und den aktuellen Thread blockieren möchten, bis alle Vorgänge abgeschlossen sind.
async/await wird verwendet, wenn die aktuelle Operation keine weiteren Fortschritte machen kann, bis eine bestimmte asynchrone Operation abgeschlossen ist, Sie jedoch den aktuellen Thread nicht blockieren möchten. Dies ist besonders in zwei Situationen nützlich:
Sie können Parallelität und Asynchronität kombinieren, indem Sie eine neue Aufgabe starten, die Parallel.ForEach
aufruft und dann auf diese Aufgabe wartet. (Nur als ein Beispiel.)
- 1. C# threading parallel
- 2. C# Threading parallel Ausgabe
- 3. C# Parallel Foreach + Async
- 4. Eine Funktion parallel aufrufen C++
- 5. parallel parMap und Strategien
- 6. C# Parallel/Multithread eine Weile
- 7. Async erwarten und parallel
- 8. Lauf Aussagen in ‚parallel‘
- 9. Parallel * ply in Funktionen
- 10. parallel
- 11. Tasksequenz parallel in Fake
- 12. GNU Parallel und Solaris 11
- 13. Parallel- und Multicore-Prozessoren in R
- 14. Eingang und Ausgang von Parallel-Port
- 15. Polymorphismus und Typsicherheit parallel Vererbungsketten
- 16. C++ STL Multithreading, laufende Berechnung parallel
- 17. C# parallel Lesezugriff ohne zur Liste Kopieren
- 18. C# parallel foreach ebenso Finishing Aufgaben
- 19. C Parallel merge sort arbeiten manchmal
- 20. Thread kann nicht für force_each parallel C++
- 21. Perl Art und Weise von parallel
- 22. Parallel for-Schleife in Windows
- 23. Parallel vorhergesagt
- 24. Parallel in bash
- 25. Parallel SSH in Python
- 26. Parallel Zuweisungsoperator in Ruby
- 27. Wie parallel Datei lesen und schreiben
- 28. Parallel Aufgabe in SimGrid
- 29. parallel Aufgabe in TBB
- 30. beste Methode zum Zusammenfassen von Matrixelementen parallel in C#
Siehe diese verwandte Frage: http://stackoverflow.com/questions/9898441/do-the-new-c-sharp-5-0-async-and-await-keywords-use -multiple-cores –
Sehen Sie, wie Sie Async-Operationen parallel aufrufen https://StackOverflow.com/questions/11564506/nesting-await-in-parallel-foreach/11565531#11565531 –