我有一个如下所示的异步计算(请参阅内联注释):
async {
//...
do! Async.Sleep(100) //cancellation may happen during sleep
//... but isn't checked at the end of the sleep, so regular, non-async computations are executed here
}
为了在到达“常规”计算部分之前强制取消检查/终止整个异步计算,我插入了一个有效的无操作do! Async.Sleep(1)
紧接着do! Async.Sleep(100)
。有没有更干净的方法来做到这一点?甚至可能是类似的东西do! Async.Nop
.
像这样的事情怎么样:
let nop = async.Return ()
然后你可以像这样使用它:
async {
// ...
do! Async.Sleep 100
do! nop
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)