我一直在尝试以各种方式让我的程序在运行下一行代码之前休眠10秒钟。
this.SetContentView (Resource_Layout.Main)
let timer = new System.Timers.Timer(10000.0)
async{do timer.Start()}
this.SetContentView (Resource_Layout.next)
我无法获得任何解决方案。
答案 0 :(得分:4)
如果你想使用async
而不是更直接的方式(创建计时器并在计时器的事件处理程序中设置内容视图),那么你需要这样的东西:
this.SetContentView (Resource_Layout.Main)
async{
do! Async.Sleep(10000.0)
this.SetContentView (Resource_Layout.next) }
|> Async.StartImmediate
关键点:
do! Async.Sleep
可以阻止异步计算的执行SetContentView
内移动async
来电,会在睡眠后发生Async.StartImmediate
启动工作流程 - 休眠确保其余计算在相同的线程上下文中运行(意味着它将在UI线程上运行,代码将能够访问UI元件)。