我有以下程序:
open System.Diagnostics
open System.Threading
[<EntryPoint>]
let main _ =
let timer = Stopwatch ()
printfn "begin"
timer.Start ()
Thread.Sleep 5000
timer.Stop ()
printfn "end"
printfn "%i ms" timer.Elapsed.Milliseconds
0
我期望它打印5000毫秒或更多的运行时间。在打印"开始"one_answers"开始"之间会暂停大约5秒。和";以何种;。但它只打印"3毫秒"。左右。为什么Stopwatch
不计算睡眠时间?
这是因为Elapsed属性返回一个TimeSpan,而这个TimeSpan的Milliseconds属性非常小。如果您使用ElapsedMilliseconds属性,您应该会看到一个不错的值。
[编辑]你也可以使用timer.Elapsed。TotalMilliseconds,(这是一个浮点数,而不是int)。