projman/hlp/ru/tcl/after.html

117 lines
8.0 KiB
HTML
Raw Normal View History

<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN>
2015-10-19 13:27:31 +03:00
<html>
<head>
<title>after</title>
</head>
<body>
<h1>after</h1>
<p>Команда <strong>after</strong> указывает, что некоторая команда должна
быть выполнена с задержкой по времени.</p>
2015-10-19 13:27:31 +03:00
<pre>
<a href=#ms><strong>after</strong></a> <em>ms</em>
<a href=#ms_script><strong>after</strong></a> <em>ms</em> ?<em>script</em> <em>script</em> <em>script</em>...?
<a href=#cancel_id><strong>after</strong> <strong>cancel</strong></a> <em>id</em>
<a href=#cancel_script_script><strong>after</strong> <strong>cancel</strong></a> <em>script</em> <em>script</em> <em>script</em>...
<a href=#idle><strong>after</strong> <strong>idle</strong></a> ?<em>script</em> <em>script</em> <em>script</em>...?
<a href=#info><strong>after</strong> <strong>info</strong></a> ?<em>id</em>?
2015-10-19 13:27:31 +03:00
</pre>
<h2>ОПИСАНИЕ</h2>
2015-10-19 13:27:31 +03:00
<p> Команда используется для того, чтобы отложить выполнение
программы или выполнить указанную команду в фоновом режиме в
некоторый момент в будущем. У команды есть несколько форм,
зависящих от ее первого аргумента.</p>
2015-10-19 13:27:31 +03:00
<dl>
<dt><a name=ms></a><strong>after</strong> <em>ms</em></dt>
2015-10-19 13:27:31 +03:00
<dd> <em>Ms</em> - целое число, задающее задержку в миллисекундах.
Команда обеспечивает задержку на соответствующее число
миллисекунд до своего завершения. Во время задержки приложение
не реагирует на события.
2015-10-19 13:27:31 +03:00
</dd>
<dt><a name=ms></a><strong>after</strong> <em>ms</em>
2015-10-19 13:27:31 +03:00
?<em>script</em> <em>script</em> <em>script</em>...?</dt>
<dd> В этой форме команда завершается немедленно, но при этом
она обеспечивает выполнение Tcl-команды <em>script script
script</em> через соответствующее время. Команда выполняется
ровно один раз в установленный момент времени. Команда
формируется объединением всех перечисленных аргументов
<em>script</em> таким же образом, как при выполнении команды <a
href=concat.html><strong>concat</strong></a>. Команда выполняется
на глобальном уровне (вне контекста какой-либо
Tcl-процедуры). Ошибки во время выполнения команды (если они
происходят) обрабатываются с помощью процедуры <a
href=bgerror.html><strong>bgerror</strong></a>. Команда
<strong>after</strong> в этой форме возвращает идентификатор, который
может быть использован для отмены отложенной команды с помощью
команды <strong>after cancel</strong>.
2015-10-19 13:27:31 +03:00
</dd>
<dt><a name=cancel_id></a><strong>after</strong> <strong>cancel</strong>
2015-10-19 13:27:31 +03:00
<em>id</em></dt>
<dd> Отменяет исполнение ранее заявленной отложенной команды.
<em>Id</em> определяет, какая именно команда будет отменена.
Значение <em>id</em> должно совпадать со значением, возвращенным
предыдущей командой <strong>after</strong>. Если соответствующая команда
уже выполнена, команда <strong>after cancel</strong> игнорируется.
2015-10-19 13:27:31 +03:00
</dd>
<dt><a name=cancel_script_script></a><strong>after</strong>
2015-10-19 13:27:31 +03:00
<strong>cancel</strong> <em>script</em> <em>script</em>...</dt>
<dd> Эта команда также отменяет выполнение ранее заявленной
отложенной команды. Все перечисленные скрипты <em>script</em>
объединяются через пробел таким же образом, как при выполнении
команды <a href=concat.html><strong>concat</strong></a>. После
чего ищется отложенная команда с аналогичным скриптом. Если
такая команда будет найдена, ее исполнение будет отменено. В
противном случае команда <strong>after cancel</strong> игнорируется.
2015-10-19 13:27:31 +03:00
</dd>
<dt><a name=idle></a><strong>after</strong> <strong>idle</strong> <em>script</em>
2015-10-19 13:27:31 +03:00
?<em>script</em> <em>script</em>...?</dt>
<dd> Все перечисленные скрипты объединяются через пробел таким
же образом, как при выполнении команды <a
href=concat.html><strong>concat</strong></a>. Сформированная таким
образом Tcl команда выполняется позже. Она выполняется ровно
один раз в первом цикле обработчика событий, в котором не
будет других необработанных событий. Команда <strong>after idle</strong>
возвращает идентификатор, который может быть использован для
отмены отложенной команды. Ошибки во время выполнения команды
(если они происходят) обрабатываются с помощью процедуры <a
href=bgerror.html><strong>bgerror</strong></a>.
2015-10-19 13:27:31 +03:00
</dd>
<dt><a name=info></a><strong>after</strong> <strong>info</strong> ?<em>id</em>?</dt>
<dd> Эта команда используется для получения информации об
отложенных командах. Если аргумент <em>id</em> отсутствует , то
возвращает список идентификаторов отложенных команд. Если
аргумент <em>id</em> указан и соответствует идентификатору
отложенной команды, которая не отменена и еще не выполнена,
возвращается список из двух элементов. Первый элемент списка
- Tcl-скрипт соответствующей команды, второй - <strong>idle</strong>
или <strong>timer</strong> в зависимости от того, по какому событию
предполагается вызов команды.
2015-10-19 13:27:31 +03:00
</dd>
</dl>
<p>Команды <strong>after ms</strong> и <strong>after idle</strong> предполагают, что
приложение управляется событиями. Отложенные команды не
выполняются, если в приложении не активизирован цикл обработки
событий. В приложениях, в которых он обычно не активизирован,
таких как <strong>tclsh</strong>, цикл обработки событий может быть
активизирован с помощью команд <a href=
vwait.html><strong>vwait</strong></a> и <a href=
update.htm><strong>update</strong></a>.</p>
2015-10-19 13:27:31 +03:00
</body>
</html>