Цитата Сообщение от Alchemist
Какой смысл вообще делать Sleep?
Если не делать этого (или делать Sleep(0) - управление вернётся сразу же), то занятость проца будет 100%. Из-за этого, например, нельзя поднимать приоритет потоку эмуля.
Другие задачи заберут время не когда захотят сами, а когда это решит планировщик. Он это обычно делает когда не нужно, и забирает всё сразу в результате возможны заметные "паузы" в работе раз в несколько секунд.

Цитата Сообщение от SMT
на селеронах под w2003 не наблюдаю никакого эффекта от timeBeginPeriod(), время выполнения Sleep(2) - от 2000 до 2800 mcs
Под w2003 тестировать возможности не было (только 2K Pro, XP, +/- несколько разных SP), результат везде одинаков - 15мс. Может быть MS внесли изменения в работу планировщика?

Всё же, я думаю дело в каких-то других прогах, так как timeBeginPeriod имеет глобальный эффект. Можно попробовать закрыть всё лишнее (у меня влияет kX Mixer). К CPU это IMHO отношения не имеет - то же самое наблюдалось и на 4м пне с HT (измерялось моим тестом). Но быстрый проц успевает уложиться в оставшееся время.

Вот мои тесты на чистой 2K (под XP тоже самое)
// без предварительного вызова timeBeginPeriod
CPU AuthenticAMD at 1666 MHz
running Windows NT 5.0.2195
Sleep(1) time = 15623 microseconds
Sleep(1) time = 15625 microseconds
Sleep(1) time = 15600 microseconds

// предварительно запускается wait.exe - "изолированный" порцесс, делающий timeBeginPeriod
CPU AuthenticAMD at 1666 MHz
running Windows NT 5.0.2195
Sleep(1) time = 1952 microseconds
Sleep(1) time = 1953 microseconds
Sleep(1) time = 1952 microseconds
Цитата Сообщение от Vladimir Kladov
в полном экране я просто врубаю high priority
IMHO если периодически отдавать время системе (только уж не по 15мс), то можно повысить приоритет и в оконе, особенно если на переднем плане. Только если где случится jmp $, то труба
А с хуками - хитро, это уже хирургия


ЗЫ: Всё сказанное про слип не вкоем случае не относится к мастдаям - там точность хорошая.