我有一个带有c桌面应用程序的tcl / tk,其中一个要求是改变系统时间,后台有从c代码运行的线程,""""来自tcl代码的命令。每当我将时间更改为较早的时间系统挂起时
即:05:50:12
- > 05:45:12
当我及时前进时,我也会感到奇怪。我正在运行lubuntu。我不确定在这种情况下该做什么,我做了一些测试,似乎在我及时改变之后等待。
更改我使用的时间:来自tcl代码的exec date --set="STRING"
答案 0 :(得分:1)
Tcl取决于系统时间(从Unix时代开始转换为秒),对于许多事情的正确行为而言,相当接近单调增加,但最重要的是after
命令中的任何内容。在内部,after
计算事件应该发生的绝对时间,并且只有在达到该时间时触发事物,以便提前触发事件(可能由于各种OS事件而发生)并且#39;引起问题。如果你将系统时间设置得很长,那么Tcl会等到绝对时间到达,这看起来很像挂起。
只需将您的时钟与NTP同步(即打开ntpd
),然后手动停止摆弄系统时钟。