<!DOCTYPE HTML PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN> <html> <head> <title>after</title> </head> <body> <h1>after</h1> <p>Команда <strong>after</strong> указывает, что некоторая команда должна быть выполнена с задержкой по времени.</p> <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>? </pre> <h2>ОПИСАНИЕ</h2> <p> Команда используется для того, чтобы отложить выполнение программы или выполнить указанную команду в фоновом режиме в некоторый момент в будущем. У команды есть несколько форм, зависящих от ее первого аргумента.</p> <dl> <dt><a name=ms></a><strong>after</strong> <em>ms</em></dt> <dd> <em>Ms</em> - целое число, задающее задержку в миллисекундах. Команда обеспечивает задержку на соответствующее число миллисекунд до своего завершения. Во время задержки приложение не реагирует на события. </dd> <dt><a name=ms></a><strong>after</strong> <em>ms</em> ?<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>. </dd> <dt><a name=cancel_id></a><strong>after</strong> <strong>cancel</strong> <em>id</em></dt> <dd> Отменяет исполнение ранее заявленной отложенной команды. <em>Id</em> определяет, какая именно команда будет отменена. Значение <em>id</em> должно совпадать со значением, возвращенным предыдущей командой <strong>after</strong>. Если соответствующая команда уже выполнена, команда <strong>after cancel</strong> игнорируется. </dd> <dt><a name=cancel_script_script></a><strong>after</strong> <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> игнорируется. </dd> <dt><a name=idle></a><strong>after</strong> <strong>idle</strong> <em>script</em> ?<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>. </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> в зависимости от того, по какому событию предполагается вызов команды. </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> </body> </html>