Как указали другие, по умолчанию разрешение Sleep составляет 10 или 15 миллисекунд, в зависимости от редакции Windows.
Однако вы можете перепрограммировать таймер для использования разрешения 1 миллисекунды, выдав
timeBeginPeriod(1);
timeEndPeriod(1);
, где
[DllImport(WINMM)]
internal static extern uint timeBeginPeriod(uint period);
Мы делаем это в наших службах последовательной связи, где очень важно иметь возможность точного распределения посылок во времени.Некоторые люди неохотно делают это, потому что это заставляет Windows делать другие вещи, которые также основаны на таймере, также чаще.На самом деле это не вызвало у нас никаких заметных проблем, и у нас есть сотни установок, каждая из которых подключена к сотням последовательных устройств.