F# 在范围上使用PLINQ AsParallel()

F# 在范围上使用PLINQ AsParallel(),f#,task-parallel-library,plinq,F#,Task Parallel Library,Plinq,我想使用PLINQ方法AsParallel()重写这个并行.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.Fo

我想使用PLINQ方法AsParallel()重写这个并行.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 ->
您可以使用和跳过一些元素,然后获取某个数字,这基本上允许您查询一个范围


这将是
A.AsParallel().Skip(低)。Take(高-低+1)。选择(…

一种方法是使用:

ParallelEnumerable.Range(low, high-low+1).Select(fun i -> let a = A.[i] in …)