Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Stopwatch.GetTimestamp()在linux和windows上产生了不同的结果_C#_Linux_Windows_Asp.net Core 3.1_.net Core 3.1 - Fatal编程技术网

C# Stopwatch.GetTimestamp()在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

我希望有人能向我解释一下为什么下面的函数在linux和windows上产生了难以置信的不同结果

如果我有这段代码:


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