我想使用 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 ->
最佳答案
一种方法是使用 ParallelEnumerable.Range()
:
ParallelEnumerable.Range(low, high-low+1).Select(fun i -> let a = A.[i] in …)
关于f# - 在范围上使用 PLINQ AsParallel(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16225816/