Spec-Zone.ru › Elisp

Ожидание истечения времени или ввода

Функции ожидания предназначены для ожидания истечения определенного времени или получения ввода. Например, вы можете приостановить вычисления, чтобы дать пользователю время просмотреть отображение. sit-for приостанавливает выполнение и обновляет экран, а затем возвращает значение немедленно, если поступает ввод, в то время как sleep-for приостанавливает выполнение без обновления экрана.

Функция: sit-for seconds &optional nodisp

Эта функция выполняет повторное отображение (если нет ожидающего ввода от пользователя), затем ожидает seconds секунд или до появления ввода. Обычно sit-for используется, чтобы дать пользователю время прочитать отображенный текст. Значением является t, если sit-for ожидал всё заданное время без получения ввода (см. Разное по вводу событий). В противном случае, значением является nil.

Аргумент seconds не обязательно должен быть целым числом. Если он является дробным, sit-for ожидает дробное количество секунд. Некоторые системы поддерживают только целые значения секунд; на таких системах seconds округляется вниз.

Выражение (sit-for 0) эквивалентно (redisplay), т.е. оно запрашивает повторное отображение без задержки, если нет ожидающего ввода. См. Принудительное повторное отображение.

Если nodisp имеет ненулевое значение, то sit-for не выполняет повторное отображение, но всё равно возвращает значение, как только ввод становится доступным (или по истечении таймаута).

В пакетном режиме (см. Пакетный режим), sit-for нельзя прервать, даже вводом со стандартного дескриптора ввода. Таким образом, он эквивалентен sleep-for, который описан ниже.

Также можно вызвать sit-for с тремя аргументами, как (sit-for seconds millisec nodisp), но это считается устаревшим.

Функция: sleep-for seconds &optional millisec

Эта функция просто приостанавливает выполнение на seconds секунд без обновления отображения. Она не обращает внимания на доступный ввод. Возвращает значение nil.

Аргумент seconds не обязательно должен быть целым числом. Если он является дробным, sleep-for ожидает дробное количество секунд. Некоторые системы поддерживают только целые значения секунд; на таких системах seconds округляется вниз.

Необязательный аргумент millisec указывает дополнительный период ожидания в миллисекундах. Он добавляется к периоду, указанному в seconds. Если система не поддерживает ожидание дробных долей секунды, вы получите ошибку, если вы укажете ненулевое значение millisec.

Используйте sleep-for когда необходимо гарантировать задержку.

См. Время суток для функций получения текущего времени.

Copyright © 1990-1996, 1998-2022 Free Software Foundation, Inc.
Licensed under the GNU GPL license.
https://www.gnu.org/software/emacs/manual/html_node/elisp/Waiting.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API