【发布时间】:2015-08-22 05:52:20
【问题描述】:
当我尝试在 tcl 线程中调用 proc 时,我收到一个错误,指出命令名称无效。以下是我的 tcl 代码。请帮助确定为什么在线程中无法识别 proc。谢谢。
package require Thread
proc CPUload { Start Stop } {
for {set i $Start} {$i <= $Stop} {incr i} {
set j [expr {sqrt($i)*sqrt($i)}]
set k [expr {$i % 123}]
}
}
set id1 [thread::create]
catch {thread::send $id1 "CPUload 1 50000000"} ret
puts $ret
puts $errorInfo
while {[llength [thread::names]] > 1} {
after 500
}
错误信息如下
无效的命令名称“CPUload” 在执行时 “CPU负载 1 50000000” 从内部调用 "thread::send $id1 "CPUload 1 50000000""【问题讨论】:
-
阅读线程文档...您需要在线程中加载/初始化您的 proc,它们不会自动/神奇地共享。
标签: multithreading tcl proc