2010-09-23 64 views
0

我想问一个简单的问题如何停止这个定时器。
某人的代码是这样的:
使用F停止闭包中的定时器#


    let mutable timer = new DispatcherTimer() 
    timer.Interval - new TimeSpan(0,0,0,0,100) 
    timer.Start() 

,我想补充一点,导致定时器功能停止时,我按一下按钮
所以我把这样的代码(我真的不有线索):


btnStop.Click 
     |> Event.add(fun args -> timer.Stop()) 

,但它说,它不能被关闭
任何想法如何做到这一点捕捉?
对不起。我不是一个有经验的功能程序员。我只是想修改一个代码。

+5

提示:'是不是需要为您的用途mutable'关键字,将其删除:) – Juliet 2010-09-23 02:23:54

回答

4

是否有理由让计时器变化?如果你从来没有给它分配一个新值,那么你可以放弃mutable,它应该可以工作。

否则,你需要使用一个参考单元,而不是一个正常的可变绑定:

let timer = ref (new DispatcherTimer()) 
(!timer).Interval <- new TimeSpan(0,0,0,0,100) 
(!timer).Start() 

btnStop.Click 
    |> Event.add(fun args -> (!timer).Stop())