2
我想知道在C#中AsParallel和AsParallel.Select()之間的區別是什麼,因爲兩者都返回AsParallelQuery的實例。 考慮下面的代碼片段:AsParallel和AsParallel.Select在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
我不知道,list.AsParallel()和list.AsParallel()選擇()如何解釋不同
''Select''將列表中的元素轉換爲另一種形式。在您的代碼示例中,select只是輸出與接收輸入相同的元素,因此與「'Select.'沒有''list.AsParallel()''沒有任何區別。 –
但是,按照我的理解,'AsParallel()'應該如何對'ParallelQuery'進行迭代,並行觸發查詢(數據並行),並且結果也應該按順序收集。 –
您可以進行迭代'foreach'語句並不知道並行化,它只是在** 1 **線程中迭代集合 – VMAtm