Asynchronous 来自异步工作流f的回调函数#

Asynchronous 来自异步工作流f的回调函数#,asynchronous,f#,Asynchronous,F#,我这里有点麻烦。我似乎无法在计算的每一步都使异步工作流回调。这是我的密码 let criteria: state -> state -> bool = ...//criteria definition let callback: state -> unit = ..../callback definition let rec compute task state = async{ ....// some long computations let

我这里有点麻烦。我似乎无法在计算的每一步都使异步工作流回调。这是我的密码

let criteria: state -> state -> bool = ...//criteria definition
let callback: state -> unit = ..../callback definition
let rec compute task state =
    async{
      ....// some long computations
      let task' = task.ContinueWith(fun _ ->callback(newState))
      if criteria state newState then return newState
      else return! compute task' newState
    }

newState
从何而来?胡乱猜测-但也许可以尝试使用
Async.AwaitTask
调用该任务?很难说出您的期望。如前所述,
compute
循环独立于任务运行。因此,通过
compute
的每个循环将向队列中添加另一个任务,但它不会等待这些任务结束。在你试图做的事情背后提供更多的背景。也许是我的错误,使用了任务构造函数而不是任务。Run@JokingBear这很可能是真的-
任务
构造函数是您永远不应该真正使用的东西-它创建了一个冷任务,这是不鼓励的,因为没有任何东西会启动它。