我想要每隔24小时重复一次例行公事,怎么能在F#中完成呢?
module Program
let private someRoutine =
printfn "someRoutine"
let setInterval =
printfn "repeating"
someRoutine. // call repeatedly every 24 hour
我的尝试
Task.Delay 1000 setInterval
答案 0 :(得分:0)
不确定你的意思是“出于惯用的编程世界”。
您引用的示例是使用带有取消令牌的Mailboxprocessor
。它涵盖了一般用例,可能可以满足您的需求。
您可能会发现Timer class有用。参见那里的例子。
这是睡眠时间为5秒的计时器,然后打印出时间:
open System
[<EntryPoint>]
let main argv =
let timer = new Timers.Timer(5000.)
let event = Async.AwaitEvent (timer.Elapsed) |> Async.Ignore
printfn "%A" DateTime.Now
timer.Start()
printfn "%A" "A-OK"
while true do
Async.RunSynchronously event
printfn "%A" DateTime.Now
printfn "%A" argv
0 // return an integer exit code
λ。\ AsyncTimer2.exe
2018/03/11 10:35:24
“A-OK”
2018/03/11 10:35:29
2018/03/11 10:35:34
2018/03/11 10:35:39
2018/03/11 10:35:44
2018/03/11 10:35:49