是否有一个等同于TPL Parallel.Invoke的F#?到目前为止,我所遇到的只是任务工厂,用于显式任务控制,但我在分析它时遇到了问题。
答案 0 :(得分:5)
使用 F#中的Parallel.Invoke
有什么问题? F#的最佳功能之一是您可以重用.NET基类库(BCL)中提供的所有功能。
为简化起见,我可能会创建一个小函数来将F#函数数组映射到Action
个委托数组中,如下所示:
/// Wraps each F# in a System.Action delegate.
let funcsAsActions (funcs : (unit -> unit)[]) : System.Action[] =
funcs |> Array.map (fun f -> System.Action f)
然后,您可以将funcsAsActions
返回的数组传递给Parallel.Invoke
。