Подтвердить что ты не робот

Являются ли StopWatch.ElapsedTicks и StopWatch.Elapsed.Ticks всегда одинаковыми?

Что означает ElapsedTicks и Elapsed.Ticks в классе StopWatch? Когда значение может отличаться от предполагаемого?

4b9b3361

Ответ 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.