4 ms·
Some of the Win32 things mention "millisecond precision only", but this isn't quite correct. Waitable Timers on Win32 let you request time values in units of 2
by Dwedit 4y ago
Some of the Win32 things mention "millisecond precision only", but this isn't quite correct.
Waitable Timers on Win32 let you request time values in units of 200 nanoseconds. See `CreateWaitableTimer`, and `SetWaitableTimer`.
`Sleep` and `SleepEx` can be implemented using a waitable timer, just use `WaitForSingleObjectEx`.
If you need to wait for an object (semaphore, etc) using a time unit other than milliseconds, you can use `WaitForMultipleObjectsEx` with one of them being a waitable timer.
---
The next question is if Win32 can actually deliver those requests for precise times or not. From the testing I did a while ago where I was simulating Sleep, I got actual sleep times rounded to about 4ms. So much for requesting nanosecond level precision.