如何并行运行代码?

Haa*_*Daz 4 f# f#-3.0

如何同时并行运行这两个独立循环.

let a1=Seq.map2 (fun a b->(1.0-a)/(a-b)) a2  a3

let b1=Seq.map2 (fun a b->a*b) b2 b3
Run Code Online (Sandbox Code Playgroud)

Tom*_*cek 7

您可以使用标准.NET任务 - 没有特殊的F#函数或特殊语法在后台生成计算:

let a1Work = Task.Factory.StartNew(fun () ->
  Array.map2 (fun a b->(1.0-a)/(a-b)) a2  a3)
let b1 = Array.map2 (fun a b->a*b) b2 b3
let a1 = a1Work.Value
Run Code Online (Sandbox Code Playgroud)

我也改变你Seq.map2Array.map2- 计算序列是懒惰的,所以在任务中运行它们实际上不会做任何事情.使用数组,整个计算立即完成.