是否有一个等同于TPL Parallel.Invoke的F#?

时间:2013-11-20 14:50:58

标签: f# task-parallel-library parallel-extensions

是否有一个等同于TPL Parallel.Invoke的F#?到目前为止,我所遇到的只是任务工厂,用于显式任务控制,但我在分析它时遇到了问题。

1 个答案:

答案 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