Какова максимальная точность Таймера в.NET?

В моем случае у меня были переменные 'секунды' и другой 'timerIsEnabled'. Когда я хотел приостановить таймер, просто сделал timerIsEnabled как ложь. Так как переменная секунд была только увеличена, если timerIsEnabled был верен, я решил свою проблему. Надежда это помогает.

10
задан RCIX 2 October 2009 в 23:36
поделиться

4 ответа

Операционные системы Windows для настольных ПК действительно не точны ниже 40 мс. Операционная система просто не работает в режиме реального времени и поэтому дает значительный недетерминированный джиттер. Это означает, что, хотя он может сообщать значения с точностью до миллисекунды или даже меньше, вы не можете рассчитывать на то, что эти значения будут действительно значимыми. Итак, , даже если интервал таймера будет установлен на какое-то субмиллисекундное значение, вы не можете рассчитывать на то, что время между установкой и срабатыванием действительно будет тем, что вы сказали, что хотите.

Добавьте к этому факту, что вся структура, в которой вы работаете, недетерминирована (сборщик мусора может приостановить вас и выполнить сбор данных в то время, когда таймер должен сработать), и вы получаете множество рисков, пытаясь сделать что-либо, что критично по времени.

9
ответ дан 3 December 2019 в 23:13
поделиться

System.Timers.Timer is weird. It's using a double as the interval but in fact calls Math.Ceiling on it and casting the result as an int to use with an underlying System.Threading.Timer. It's theorical precision is then 1ms and you can't specify an interval that exceeds 2,147,483,647ms. Given this information, I really don't know why a double is used as the interval parameter.

2
ответ дан 3 December 2019 в 23:13
поделиться

A couple of years ago I found it to be accurate to about 16ms... but I unfortunately don't remember the details.

2
ответ дан 3 December 2019 в 23:13
поделиться

You can find this out easily for yourself by performing a loop that constantly samples the resulting time duration and check on what granularity it steps.

1
ответ дан 3 December 2019 в 23:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: