Ich frage mich, was die Differenz zwischen AsParallel undAsParallel.Select() in C# ist, da beide die Instanz von AsParallelQuery zurückgibt. folgende Code-Schnipsel vor:Unterschied zwischen AsParallel und AsParallel.Select in C#
var list = Enumerable.Range(1, 100).ToList();
var parallelList = list.AsParallel();
foreach (var num in parallelList)
System.Console.WriteLine(num);//returns 1 ..100 in order
var query = list.AsParallel().Select(num => num);
foreach (var num in query)
System.Console.WriteLine(num);/*returns 1..100 not in order*/
parallelList.ForEach(System.Console.WriteLine); //returns 1 ..100 in order
Ich frage mich, wie list.AsParallel() und list.AsParallel() Wählen Sie() unterschiedlich interpretiert
'' Select'' transformiert die Elemente der Liste in eine andere Form. In Ihrem Codebeispiel gibt select einfach das gleiche Element aus, das es als Eingabe empfängt, und macht daher nichts anderes als die '' list.AsParallel() '' ohne '' Select''. –
aber wie Iteration über 'ParallelQuery', die sie geordnete, wie ich verstehe, 'AsParallel()', sollte die Abfrage parallel (Datenparallelität) auslösen und Ergebnis sollte nicht in Reihenfolge sowie –
gesammelt werden Sie tun die Iteration in 'foreach'-Anweisung, die nicht über die Parallelisierung informiert ist, iteriert sie einfach über die Sammlung in ** einem ** -Thread – VMAtm