Внутри статического секундомера
конструктора мы видим следующий код, который в основном проверяет, существует ли счетчик производительности с высоким разрешением.
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
:
Возвращает частоту счетчика производительности с высоким разрешением, если он существует
Довольно неясно, однако, когда именно он существует? Я подозреваю, что он обычно существует на текущих машинах, но а когда именно нет?
Это интересно, потому что, когда его не существует, Секундомер
становится простой оболочкой вокруг свойства DateTime.UtcNow
.