TCL'sleep'和'after'命令之间的区别

时间:2014-03-31 06:27:20

标签: tcl expect

我正在努力期待脚本编写。我想了解睡眠和之后的区别。任何例子都会帮助我理解。

3 个答案:

答案 0 :(得分:3)

有三种不同的实体:

Tclx的睡眠

sleep包中的Tclx命令。根据文档,它需要一个十进制参数,被认为是睡眠的秒数。但是,分数部分被截断。这意味着sleep 2.5将睡两秒钟。

期待的睡眠

sleep包中的Expect命令。这类似于Tclx包中的对应物。但是,sleep 2.5表示休眠2.5秒,没有截断。

之后

最后,内置after,这是一个完全不同的野兽。 after命令将其第一个输入作为休眠的毫秒数。这是杰瑞所指的“同步”模式。之后还需要第二个参数。在这种情况下,立即返回一个令牌。在指定的时间之后,将执行脚本。使用令牌,您可以取消脚本。

我希望这会有所帮助。

答案 1 :(得分:0)

sleep类似于after“同步”模式,区别在于(强调我的):

  

Tcl的内置after命令使用毫秒的延迟单位,而TclX / Expect命令使用(即,因子1000不同) 。转换时要小心。 [1]

答案 2 :(得分:0)

我试着做一个简短的解释:

Tcl睡眠会像TclX睡眠一样暂停脚本。

after命令可以暂停脚本,但它通常用于基于事件的编程。它可以在经过的时间之后执行脚本(如果事件循环正在运行)。

有关此see here at beedub.com的详情。