- ふらっと C#,C♯,C#(初心者用) Part113
177 :デフォルトの名無しさん[sage]:2014/11/03(月) 22:32:26.22 ID:CMUuDIkw - >>171
LINQのselectは.Select()のシンタックスシュガーであって foreachのシンタックスシュガーではないよ。 なので.Select()が並列化されることはあっても foreachは並列化されない
| - ふらっと C#,C♯,C#(初心者用) Part113
179 :177[sage]:2014/11/03(月) 23:28:04.28 ID:CMUuDIkw - >>178
「from n in ar.AsParallel() select n;」 これは直感的には 「from n in ar.AsParallel()」に対して.Select(n => n)する。 このとき並列処理されてランダムな順のに取り出す予定のIEnumerable<>が出来上がる。 つまり「var q1 = from n in ar.AsParallel() select n」の結果のq1が既に ランダムに取り出すことになる予定のIEnumerable<>。 それをforeachで順に取り出すからランダムに見えるのであって、 IEnumerable<>に対するforeachは常に順番通り。
|
|