Что означает ElapsedTicks
и Elapsed.Ticks
в классе StopWatch? Когда значение может отличаться от предполагаемого?
Являются ли StopWatch.ElapsedTicks и StopWatch.Elapsed.Ticks всегда одинаковыми?
Ответ 1
Я только узнал, что ElapsedTicks в классе StopWatch не означает настоящие "тики", если StopWatch.isHighResolution имеет значение True
Примечание (если isHighResolution является True):
Секундомер отличается от DateTime..::. Клещи. Каждый тик в DateTime..::. Значение Ticks представляет один 100-наносекундный интервал. Каждый тик в значении ElapsedTicks представляет временной интервал, равный 1 секунде разделенный на частоту.
Вы можете сделать математику выше или, похоже, вы можете использовать StopWatch.Elapsed.Ticks вместо StopWatch.ElapsedTicks
Ответ 2
Elapsed.Ticks / TimeSpan.TicksPerSecond == ElapsedTicks / Stopwatch.Frequency
Конечно, это может быть не совсем равным из-за округления, так как метки секундомера и тики TimeSpan измеряются в разных единицах. Кроме того, в случае, если вы выполнили вышеуказанный код буквально, очевидно, что некоторые тики пройдут между значением Elapsed.Ticks
и значением ElapsedTicks
.