- 名字
- after - 延迟一段时间之后执行一个命令
- 总览
- after ms
- after ms ?script script script ...?
- after cancel id
- after cancel script script script ...
- after idle ?script script script ...?
- after info ?id?
- 描述
- after ms
- after ms ?script script script ...?
- after cancel id
- after cancel script script ...
- after idle script ?script script ...?
- after info ?id?
- 参见
- 关键字
after - 延迟一段时间之后执行一个命令
after ms
after ms ?script script script ...?
after cancel id
after cancel script script script ...
after idle ?script script script ...?
after info ?id?
这个命令被用于延迟执行程序或者在将来某时在后台执行一个命令。它有几种形式,依靠给命令的第一个参数(来区分):
- after ms
-
Ms
必须是整数,给出以毫秒为单位的时间。命令在睡眠(sleep) ms
毫秒之后返回。当命令在睡眠的时候,应用不响应事件。
- after ms ?script script script ...?
-
在这种形式中,命令立即返回,它安排一个 Tcl 命令在 ms
毫秒之后作为事件处理器(handler)来运行。在给定时间,命令将被精确的执行一次。延迟的命令是通过连接(concatenate)所有的 script
参数形成的,这与 concat
命令的方式(fashion)一样。命令将在全局层次上执行(在任何 Tcl
过程的上下文之外)。在执行延迟命令时如果有错误发生,则使用
bgerror 机制来报告错误。after 命令返回一个标识符,after cancel
命令用它来取消延迟的命令。
- after cancel id
-
取消前面安排的延迟命令的执行。Id
指示要取消那条命令;它必须是前面 after 命令返回的。如果用 id
给出的命令已经执行了则 after cancel 命令不起作用。
-
- after cancel script script ...
-
这个命令也取消一个延迟命令的执行。用空格分隔符来连接 script
参数(如同在 concat 命令中那样)。如果有一条等待的命令与这个字符串匹配,则取消它并永不执行;如果当前没有这样的等待命令则 after cancel
命令不起作用。
- after idle script ?script script ...?
-
用空格分隔符连接 script 参数(如同在 concat
命令中那样),并被作为一个空闲回调(idle callback)来安排结果脚本在以后执行。下次进入事件循环并且没有事件要处理(的时候),这个脚本被精确的执行一次。命令返回一个标识符,after cancel
命令用它来取消延迟的命令。在执行延迟命令时如果有错误发生,则使用
bgerror 机制来报告错误。
- after info ?id?
-
这个命令返回关于存在的事件处理器的信息。如果没提供 id
参数,命令为所有通过 after
命令给这个解释器建立的事件处理器返回一个标识符的列表。如果提供了 id,它指定一个现存的处理器;id
必须是以前调用 after
返回的值并且仍未被触发或取消。这种情况下命令返回一个有两个元素的列表。列表的第一个元素是与 id
关联的脚本,第二个元素要么是
idle 要么是 timer,指示它是那种类型的事件处理器。
命令的 after ms 和 after idle
形式假定应用是事件驱动的:
除非应用进入事件循环否则延迟命令将不被执行。在通常不事件驱动的应用中,如
tclsh,用 vwait
和 update 命令进入事件循环。
bgerror
取消, 延迟,
空闲回调, 睡眠, 时间
Copyright © 1990-1994 The Regents of the University of California.
Copyright © 1994-1996 Sun Microsystems, Inc.
Copyright © 1995-1997 Roger E. Critchlow Jr.
[中文版维护人]
寒蝉退士
[中文版最新更新]
2001/06/21
《中国 Linux 论坛 man 手册页翻译计划》:
www.CMPP.net