Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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
.net 睡眠或秒表测量不准确_.net_Powershell_Timer_Stopwatch - Fatal编程技术网

.net 睡眠或秒表测量不准确

.net 睡眠或秒表测量不准确,.net,powershell,timer,stopwatch,.net,Powershell,Timer,Stopwatch,我需要检查运行几个脚本需要多长时间,并希望确保我知道如何使用计时器,因此我编写了下面的简短测试来检查我的逻辑: for($i = 0; $i -lt 11; $i++) { $sw = [Diagnostics.Stopwatch]::StartNew() Start-Sleep -Milliseconds 2000 $sw.Stop() $elapsed = $sw.Elapsed.Milliseconds Write-Host $elapsed }

我需要检查运行几个脚本需要多长时间,并希望确保我知道如何使用计时器,因此我编写了下面的简短测试来检查我的逻辑:

for($i = 0; $i -lt 11; $i++) {
    $sw = [Diagnostics.Stopwatch]::StartNew()
    Start-Sleep -Milliseconds 2000
    $sw.Stop()

    $elapsed =  $sw.Elapsed.Milliseconds
    Write-Host $elapsed
}
在这里,我只是启动一个计时器,调用
Start Sleep
2000毫秒,然后输出(我认为是)经过的时间(以毫秒为单位)

这是输出:

1
6
11
11
12
9
11
12
12
11
8
我并不是100%确定从输出中可以得到什么,但我的假设是每行的长度刚好超过2000,因为这是睡眠的长度

有人知道这里发生了什么吗?我还用其他面值(分钟、小时、秒)测试了这一点,结果同样令人困惑


每次我运行这个脚本,结果都不一样,我似乎看不出任何模式

秒表没什么问题。返回时间跨度的毫秒分量。您应该使用该属性检索经过的毫秒数

但最准确的数值是。秒表本身并不计时,它在启动和停止时读取系统高分辨率计时器的滴答声值。Ticks属性包含这种差异


您可以从秒表本身检索相同的值,例如,

我找到了答案

$sw.appeased.millizes
将仅显示已过的毫秒数(不包括分钟和秒数)

我需要使用的是
$sw.elapsedmilliseconds