为什么 Thread.Sleep 不在秒表中注册?



我有以下程序:

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)。

相关内容

  • 没有找到相关文章

最新更新