F# 使用F在闭包中停止计时器#

F# 使用F在闭包中停止计时器#,f#,timer,closures,F#,Timer,Closures,我想问一个简单的问题,如何停止这个计时器。 某人的代码如下: let mutable timer = new DispatcherTimer() timer.Interval - new TimeSpan(0,0,0,0,100) timer.Start() 我想添加一个函数,每当我点击按钮时,定时器就会停止 所以我写了一个这样的代码(我真的没有线索): 但是它说它不能被闭包捕获 知道怎么做吗? 很抱歉我不是一个有经验的函数式程序员。我只想修改一个代码。是否有理由使计

我想问一个简单的问题,如何停止这个计时器。
某人的代码如下:


    let mutable timer = new DispatcherTimer()
    timer.Interval - new TimeSpan(0,0,0,0,100)
    timer.Start()
我想添加一个函数,每当我点击按钮时,定时器就会停止
所以我写了一个这样的代码(我真的没有线索):

但是它说它不能被闭包捕获
知道怎么做吗?

很抱歉我不是一个有经验的函数式程序员。我只想修改一个代码。

是否有理由使计时器可变?如果您从未给它赋值,那么您可以直接删除
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())
let timer=ref(新分派器())
(!timer).Interval Event.add(趣味参数->(!timer).Stop())

是否有理由使计时器可变?如果您从未给它赋值,那么您可以直接删除
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())
let timer=ref(新分派器())
(!timer).Interval Event.add(趣味参数->(!timer).Stop())

提示:
mutable
关键字不需要用于您的使用,请删除它:)提示:
mutable
关键字不需要用于您的使用,请删除它:)