npak
|
|
« Ответ #1 : 27-04-2005 09:56 » |
|
Никто не гарантировал, что Sleep будет пробуждать поток СТРОГО по истечении указанного интервала. Sleep пробуждает не раньше истечения заявленного времени, но точный интервал не гарантируется.
Судя по косвенным намёкам в документации, время ожидания Sleep кратно кванту времени в планировщике. Одно время я тоже боролся за миллисекундную точность. Насколько сейчас помню, waitable timer демонстрирует гораздо большую точность, чем Sleep. См. CreateWaitableTimer и WaitForMultipleObjects
Помимо waitable timers в Windows есть ещё два вида таймеров, Multimedia Timers и CreateTimerQueue, но эти таймеры пробуждают не тот поток, в котором таймеры созданы, а некоторый специализированный.
|