В WinAPI есть функция SetTimer. Она получает в качестве аргумента время в миллисекундах. И через заданное число миллисекунд генерирует событие, которое можно обработать.
Уменьшаю время. Уменьшаю. А эффекта нет. Полез в документацию.
ОКАЗЫВАЕТСЯ, что у SetTimer есть минимальное время, равное 10 мс. Если задавать меньше, всё равно событие будет генерироваться каждые 10 мс. Да, в документации про это написано. Однако поведение очень неожиданное. Например у функции Sleep, которая просто приостанавливает выполнение программы на заданное время, таких ограничений нет.
Интересно, это ограничение родилось из времён, когда компьютеры были большими? Современные компьютеры и таймер в 1 мс спокойно обработают.
Уменьшаю время. Уменьшаю. А эффекта нет. Полез в документацию.
ОКАЗЫВАЕТСЯ, что у SetTimer есть минимальное время, равное 10 мс. Если задавать меньше, всё равно событие будет генерироваться каждые 10 мс. Да, в документации про это написано. Однако поведение очень неожиданное. Например у функции Sleep, которая просто приостанавливает выполнение программы на заданное время, таких ограничений нет.
Интересно, это ограничение родилось из времён, когда компьютеры были большими? Современные компьютеры и таймер в 1 мс спокойно обработают.
26.08.2018 в 15:55
27.08.2018 в 02:20
27.08.2018 в 11:23
29.08.2018 в 01:16