Guten Tag,Ist Parallel.ForEach veraltet. alt, aus der Mode?
Parallele Ausführung kann durch mehrere Möglichkeiten erreicht werden. Vom rein manuellen "Multithreading" bis zur Verwendung verschiedener "Helfer" von Microsoft. Einer dieser Helfer ist die Parallel-Klasse.
Einer meiner Kollegen besteht darauf, dass Parallel.ForEach (oder Parallel-Klasse insgesamt) ist "alt" und sollte nicht verwendet werden. Stattdessen, sagt er, sollte man asynchrone Operationen verwenden. Mit anderen Worten sollten Sie Task.WhenAll()
anstelle von Parallel.ForEach()
verwenden.
die Frage, warum Parallel.ForEach(),
nicht verwenden, wenn dies ist genau das, was nötig war - mehr teueren Operationen parallel ausgeführt, antwortete er, dass Parallel.ForEach()
alt ist und dass Microsoft mit Asynchron/erwarten empfiehlt, wo immer möglich.
Ich suchte überall auf MSDN und Stackoverflow und überall konnte ich, aber ich konnte nichts finden, das auf die Notwendigkeit des Verwendens async/erwarten statt .Parallel verweist. Obwohl Sie oft ähnliche Ergebnisse erzielen können, wenn Sie diese Werkzeuge austauschen, bedeutet dies nicht, dass Parallel.ForEach veraltet ist. Oder tut es?
Jeder hat einen Link zu einigen "Best Practices" oder "Empfehlungen" von einem seriösen Gremium (MSDN?), Das würde sagen, dass Parallel.ForEach()
wird auslaufen und man muss mit dem Erstellen, Ausführen und Warten auf Aufgaben bleiben?
Bitte posten Sie keine Antworten zu Parallel VS Async für dies als das ist nicht die Frage.
Die Frage ist: Da Sie können Aufgaben parallel mit Asynchron laufen make/erwarten WhenAll
(WaitAll
etc.), ist es 'Parallel' Klasse veraltet, alt, oder nicht in Mode in .NET 4.5 weiter machen?
Wenn er behauptet, dass "Microsoft empfiehlt", dann sollte er in der Lage sein, diese Empfehlung zu zeigen. So etwas habe ich selbst nicht gesehen. –
Ihr Freund verwirrt die Parallelität mit der Asynchronität. – dcastro
@JonSkeet Sie sehen, ich möchte ihn nicht um Beweise bitten, bevor ich tatsächlich meine Forschung betreibe, weil ich nicht feindselig erscheinen möchte. Was ist, wenn deine Antwort (oder jemand anderes) "sicher ist, jeder weiß, dass es obsolet ist - wir behalten es nur für ältere Leute"? – agfc