使用Programming F# book,有一个示例首先作为串行给出:
let result1 = longTask1()
let result2= = LongTask2()
然后使用 PFX 它被赋予
Open System.Threading.Tasks
let taskBody = new Func<string>(longTask1)
let task = Task.Factory.StartNew<string>(taskBody)
let result2 = longTask2()
let result1 = task.Result
但是,在我的情况下,该函数readBlock
接受一个字符串filePath
作为参数并返回一个seq
. 我试过这样
let taskBody = new System.Func<string, seq<_>>(readBlock)
let task = Task.Factory.StartNew<seq<_>>(taskBody.Invoke(filePath))
这显示了 Task.Factory.StartNew 部分的错误 - 参数太多。那么如何调用返回值的参数化函数呢?