The reason is because of how WM_TIMERWM_TIMER
is limited to 15.6ms intervals by default. If you call SetTimer()SetTimer()
with a 1ms interval it will still be called in 15.6ms intervals. WM_TIMERWM_TIMER
drives a lot of stuff in Win32 applications like network packet processing and such.
Moving the mouse causes WM_TIMERWM_TIMER
events to fire more often on Win95. So some applications will seem to run faster.
The 15.6ms value was set for various reasons: Not clogging up the event queue so that stuff like WM_PAINTWM_PAINT
would still dispatch often enough and more recently and importantly to save power. There are tons of articles talking about this:
https://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/