Tcl同时秒表和计数器不工作

Tcl同时秒表和计数器不工作,tcl,stopwatch,simultaneous,Tcl,Stopwatch,Simultaneous,我确实有一个TK/TCL秒表从xterm启动unix计数器,但它不显示 计数器映像中的计数。unix计数器完成后(有4次迭代),然后 秒表中的显示屏显示和计数。 如何在单击“运行”按钮后继续显示计数 以下是代码(替换第3行中相应的“愿望”): #/垃圾箱/垃圾箱 ####################################################################### \ exec/sw/freetools/tk/8.5.6/Linux/rh5/x86_64

我确实有一个TK/TCL秒表从xterm启动unix计数器,但它不显示 计数器映像中的计数。unix计数器完成后(有4次迭代),然后 秒表中的显示屏显示和计数。 如何在单击“运行”按钮后继续显示计数

以下是代码(替换第3行中相应的“愿望”):

#/垃圾箱/垃圾箱
####################################################################### \
exec/sw/freetools/tk/8.5.6/Linux/rh5/x86_64/bin/wish8.5“$0”${1+“$@”}
包装需要Tk
wm标题。“测试GUI”
. 配置-padx 50-pady 50-凸起的浮雕-边框宽度2
###秒表-开始-
将背景颜色设置为“黑色”
设置前景颜色为“天蓝色”
font create FONT0-系列{VL PGothic}-大小-20-重量正常
时间:00:00:00
proc every{ms body}{
eval$body
$ms[名称空间代码[信息级别0]]之后
}
进程启动{}{
如果{$::时间等式{00:00:00}{
set::time0[时钟单击-毫秒]
}
每10{
设置m[expr{[时钟点击-毫秒]-$::time0}]
set::time[格式%2.2d:%2.2d:%2.2d[expr{$m/60000}][expr{$m/1000)%60}][expr{$m%1000/10}]
}
.frame1.run config-状态已禁用
}
进程停止{}{
如果{[llength[信息之后]]}{
取消后[信息后]
}else{set::time 00:00:00}
.frame1.run config-状态正常
}
###秒表-结束-
frame.frame1-Highlight背景黑色\
-高光厚度1\
-宽度200-高度200
label.frame1.time-textvar::time-font-FONT0-background$COLOR\u background-foreground$COLOR\u foreground
button.frame1.run-文本“run”-前景黑色-背景珊瑚色\
-borderwidth 3-高度0-宽度3-字体{-系列符号-大小8}-pady 2\
-命令{
开始
桂润
}
button.frame1.exit-文本“exit”-前景黑色\
-borderwidth 3-高度0-宽度3-字体{-系列符号-大小8}-pady 2\
-命令{exit}
包装.框架1
包装.框架1.运行-侧面顶部
包装框架1.出口-侧面底部
打包。帧1.0次
proc xterm_计数器{}{
设置文件ID[打开]。/xterm\u counter.txt“w]
放入$fileid“#!/bin/csh-f”
放入$fileid“”
将$fileid设置为“设置i=0”
将$fileid“echo”放入测试程序计数-开始-\'date+%X\'

在(\$i时放置$fileid)。问题是
exec
命令会暂停Tcl进程,直到另一个进程完成运行。对于像运行
chmod
这样的快速操作来说,这不是一个大问题,但对于长时间运行的计时器显示来说,这是一个很大的难题

最简单的修复方法,尤其是如果您并不真正关心子流程是否工作得很好,就是在
exec
的末尾放一个
&
字,这样代码就在后台运行,与Tcl断开连接

exec ./xterm_counter.txt >@stdout &
(如果我没记错的话,它会返回进程ID,让您定期拉取以终止。)


如果这对您不起作用,您可以选择在管道中运行代码(使用该重定向,它将是一个只写管道)或从工作线程运行它。

我不确定您的意思,但计数器中的计数在Windows上显示良好(按下运行按钮时计数器开始)是的,unix计数器显示在unix xterm中,但是当在TK窗口中启动计数器时,计数器会临时停止,当unix计数器完成时,TK计数器窗口会显示计数……我想我知道是什么原因造成的;当代码执行时,绘图会暂停,直到执行变为空闲。您可能需要查看。I我自己不熟悉如何使用它,所以我怀疑我是否能提供更多帮助:(谢谢,我正在考虑使用一些线程命令,我下面有一些Answare。谢谢,它工作得很好。但是现在我计划在计数器完成后停止秒表。我必须处理它。
exec ./xterm_counter.txt >@stdout &