C# Stopwatch.GetTimestamp()在linux和windows上产生了不同的结果
我希望有人能向我解释一下为什么下面的函数在linux和windows上产生了难以置信的不同结果 如果我有这段代码:C# Stopwatch.GetTimestamp()在linux和windows上产生了不同的结果,c#,linux,windows,asp.net-core-3.1,.net-core-3.1,C#,Linux,Windows,Asp.net Core 3.1,.net Core 3.1,我希望有人能向我解释一下为什么下面的函数在linux和windows上产生了难以置信的不同结果 如果我有这段代码: var appead=Stopwatch.GetTimestamp()/TimeSpan.tickspellsecond; 线程。睡眠(1001);//让我们睡一会儿 var ts=Stopwatch.GetTimestamp()/TimeSpan.tickspellsecond; var结果=ts-已用时间>10000升//约10秒 在windows环境中,result为fa
var appead=Stopwatch.GetTimestamp()/TimeSpan.tickspellsecond;
线程。睡眠(1001);//让我们睡一会儿
var ts=Stopwatch.GetTimestamp()/TimeSpan.tickspellsecond;
var结果=ts-已用时间>10000升//约10秒
在windows环境中,
result
为false
在进一步挖掘之后,我发现在使用Stopwatch.GetTimestamp()
时,毫秒计算不正确
在如下所示更新代码后,它的行为开始保持一致
var appead=Stopwatch.GetTimestamp()/(Stopwatch.Frequency/1000);
线程。睡眠(1001);//让我们睡一会儿
var ts=Stopwatch.GetTimestamp()/(Stopwatch.Frequency/1000);
var结果=ts-已用时间>10000升//约10秒
答案是感谢Jens对此的评论或者(可能更可能)。。。为什么
Thread.Sleep(1001)
在Linux上要花这么长时间才能醒来?你确定你的最后一行是正确的吗?这说明秒是10000,所以我不认为10000大约是10秒。