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 не равно nil, то sit-for не обновляет отображение, но всё равно возвращает управление, как только становится доступен ввод (или истекает время ожидания).

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

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

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

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

Также можно вызвать sleep-for с двумя аргументами, как в (sleep-for seconds millisec), но такой способ считается устаревшим и будет удалён в будущем.

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

См. Время суток, чтобы узнать о функциях получения текущего времени.

Copyright © 1990-1996, 1998-2026 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