Внутри статического конструктора Stopwatch
мы можем видеть следующий код, который в основном проверяет, существует ли счетчик производительности с высоким разрешением.
static Stopwatch()
{
if (!SafeNativeMethods.QueryPerformanceFrequency(out Frequency))
{
IsHighResolution = false;
Frequency = 0x989680L;
tickFrequency = 1.0;
}
else
{
IsHighResolution = true;
tickFrequency = 10000000.0;
tickFrequency /= (double) Frequency;
}
}
В MSDN говорится о QueryPerformanceFrequency
:
Извлекает частоту счетчика производительности с высоким разрешением, если существует
Это довольно неясно, однако, когда именно оно существует? Я подозреваю, что он обычно существует на текущих машинах, но когда точно не так?
Интересно, потому что, когда он не существует, Stopwatch
становится простой оболочкой вокруг свойства DateTime.UtcNow
.