Scripting 如何在tcl文件中添加微秒延迟?

Scripting 如何在tcl文件中添加微秒延迟?,scripting,tcl,Scripting,Tcl,我正在tcl文件中使用when命令,在满足条件后,我想等待几微秒。我在之后找到了,但是我们为之后的指定的延迟以毫秒为单位;它不采用十进制值 那么,有没有其他方法可以在tcl文件中添加短延迟呢?没有本机操作。如果它很关键,您可以忙着循环查看时钟微秒 proc microsleep {micros} { set expiry [expr {$micros + [clock microseconds]}] while {[clock microseconds] < $expiry

我正在tcl文件中使用
when
命令,在满足条件后,我想等待几微秒。我在之后找到了
,但是我们为
之后的
指定的延迟以毫秒为单位;它不采用十进制值


那么,有没有其他方法可以在tcl文件中添加短延迟呢?

没有本机操作。如果它很关键,您可以忙着循环查看
时钟微秒

proc microsleep {micros} {
    set expiry [expr {$micros + [clock microseconds]}]
    while {[clock microseconds] < $expiry} {}
}
proc microsleep{micros}{
设置到期时间[expr{$micros+[时钟微秒]}]
而{[时钟微秒]<$expiry}{}
}
我真的不建议这样做,因为它不节能;在我的经验中,这种高精度的等待是很少需要的(除非你在一个具有实时性要求的嵌入式系统上工作,而Tcl并不是一个完美的选择)


当然,您也可以在系统调用中使用C包装,如
nanosleep()
,这可能是一个更好的选择,也可能不是一个更有效的选择。

正如Donal所写,没有Tcl原生方式,但根据实际需求,请查看,谢谢您的回复。是的,我在VLSI行业工作,在做一些力的时候,我需要在做力之前等待几微秒。