Функция Sleep


Функция Sleep приостанавливает работу по выполнению текущего потока на заданный промежуток времени.

Чтобы войти в настороженное состояние ожидания, используйте функцию SleepEx.

Синтаксис

VOID Sleep(

DWORD dwMilliseconds // время бездействия, в миллисекундах

);

Параметры

dwMilliseconds

[in] Минимальный интервал времени, в миллисекундах, на которое приостанавливается выполняемая работа.

Значение нуль заставляет поток оставить остаток своего кванта машинного времени любому другому потоку равного приоритета, который является готовым к запуску. Если нет никаких других потоков равного приоритета, готовых к запуску, функция немедленно возвращает значение и поток продолжает выполнение.

Значение БЕСКОНЕЧНО (INFINITE) вызывает бесконечную задержку.

Возвращаемые значения

Эта функция не возвращает значений.

Замечания

Эта функция заставляет поток оставить остаток своего кванта машинного времени и стать не запускаемым, по меньшей мере, заданное число миллисекунд, по истечению которых поток становится готовым запуститься. В частности если Вы задаете нуль миллисекунд, поток оставит остаток своего кванта машинного времени, но останется готовым. 

Обратите внимание! на то, что готовность потока к работе не гарантирует немедленного запуска. Следовательно, поток не может запускаться какое-то время, после того, как заданный промежуток времени истек. Для получения дополнительной информации, см. статью Приоритеты обслуживания.

Вы должны быть внимательными при использовании функции Sleep и кода, который прямо или косвенно создает окно. Если поток создает какие-либо окна, он должен обрабатывать сообщения. Циркулярное сообщение отправляется всем окнам в системе. Если Вы имеете поток, который использует функцию Sleep с бесконечной задержкой, система зайдет в тупик. Два примера кода, которые косвенно создают окна - это динамический обмен данными (DDE) и модель многокомпонентных объектов (COM) CoInitialize. Поэтому, если Вы имеете поток, который создает окна, используйте MsgWaitForMultipleObjects или MsgWaitForMultipleObjectsEx, а не Sleep.

Код примера

Пример смотри в статье Использование локальной памяти потока.

Смотри также

Краткий обзор Процессы и потоки, Функции, используемые процессами и потоками, MsgWaitForMultipleObjects, MsgWaitForMultipleObjectsEx, SleepEx

Размещение и совместимость Sleep

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Kernel32.lib

Заголовочный файл

 

- объявлено в

Winbase.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz