Sleep
 
Ожидает, пока не истечет заданное время, или нажатия клавиши.

Синтаксис

Declare Sub Sleep Overload ( ByVal amount As Integer = -1 )
Declare Function Sleep ( ByVal amount As Integer , ByVal keyflag As Integer ) As Integer

Использование

Sleep [ amount [, keyflag ]]
result = Sleep ( amount, keyflag )

Параметры

amount
Необязательное количество миллисекунд для ожидания (по умолчанию используется ожидание нажатия клавиши).
keyflag
Необязательный флаг; Значение 0 для нормального Sleep, и 1 чтобы указать, что ожидание не может быть прервано нажатием клавиши.

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

Возвращает 1 если keyflag не является допустимым значением (т.е. что-то отличное от 0 или 1) для обозначения сбоя, или 0 в противном случае.

Описание

Sleep будет ждать, пока не закончится заданное количество миллисекунд, если было задано любое значение (может быть секунд в диалекте -lang qb, см. ниже) или пока пользователь не нажмет клавишу. Если amount ниже 100 мс, то Sleep всегда будет ждать запрашиваемый amount (нажатия клавиш игнорируются).

Поставьте второй параметр в 1, для "глубокого сна" Sleep, который не может быть прерван нажатием клавиши.

Точность Sleep является переменной в зависимости от времени OS цикла (Windows NT/2K/XP: 15 ms, 9x/Me: 50 ms, Linux 10ms, DOS 55 ms).

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

Sleep не очищает буфер клавиатуры и любые нажатия клавиш во время вызова Sleep сохраняются и могут быть прочитаны с помощью Inkey. Для того, чтобы ждать нажатия клавиши и извлечь ключ из буфера, GetKey может использоваться.

Пример

Print "press a key"
Sleep
GetKey 'очистить буфер клавиатуры
Print "waiting half second"
Sleep 500


Различия диалектов

  • В диалектах -lang fb и -lang fbliteamount значение в миллисекундах.
  • В диалекте -lang qb, amount значение в секундах как в QB. Если второй параметр keyflag используется, или ключевое слово записывается как __Sleep значение должно быть в миллисекундах.

Отличия от QB

  • Нет при использовании диалекта -lang qb.
  • В QB, задержка была дана только в целых секундах и не поддерживается параметр keyflag.

См. также