Windows

       

Функция Sleep


Поток может сообщить системе не выделять ему процессорное время на определен ный период, вызвав:

VOID Sleep(DWORD dwMilliseconds);

Эта функция приостанавливает поток па dwMilliseconds миллисекунд. Отметим несколько важных моментов, связанных с функцией Sleep.

  • Вызывая Sleep, поток добровольно отказывается от остатка выделенного ему кванта времени

  • Система прекращает выделять потоку процессорное время на период, пример но равный заданному, Все верно: если Вы укажете остановить поток на 100 мс, приблизительно на столько он и "заснет", хотя не исключено, что его сон про длится на несколько секунд или даже минут болыше Вспомните, Windows не является системой реального времени. Ваш поток может возобновиться в за данный момент, но это зависит от того, какая ситуация сложится в системе к тому времени.

  • Вы можете вызвать Slecp и передать в dwMilliseconds значение INFINITE, вооб ще запретив планировать поток. Но это не очень практично — куда лучше корректно завершить поток, освободив сго стек и объект ядра.

  • Вы можете вызвать Sleep и передать в dwMilliseconds нулевое значение. Тогда Вы откажетесь от остатка своего кванта времени и заставите систему подклю чить к процессору другой поток. Однако система может снова запустить Ваш поток, если других планируемых потоков с тем же приоритетом нет.


  • Содержание раздела