4

PLINQ メソッド AsParallel() を使用して、この Parallel.For ループを書き直したいと思います。私が見た限りでは、 AsParallel() にはシーケンス全体を渡す必要があります。たとえば、配列 A を作成してから、 A.AsParallel().ForAll または A.AsParallel().Select を呼び出します。AsParallel() を範囲で動作させる方法はありますか? この場合、低から高まで?

for k = 2 to m+n do
    let low = max 1 (k-m)
    let high = min (k-1) n
    Parallel.For(low, high + 1, (fun j ->
4

2 に答える 2

1

ParallelEnumerable.Skip.Takeを使用して、いくつかの要素をスキップしてから、特定の数を取ることができます。これにより、基本的に範囲を照会できます。

これは次のようになりますA.AsParallel().Skip(low).Take(high-low+1).Select(...

于 2013-04-25T22:32:37.867 に答える