我想在同步模式下向线程发送消息,并使用跟踪变量metohd获取结果。问题是我没有从线程得到任何响应。当我以正常模式发送消息(thread :: send thread_id {command} var)时,我也得到保存在var中的结果。谁能指出我犯错误的地方?下面我传递了我的代码:
trace add variable res write {apply {{v1 v2 op} {
upvar 1 $v1 v
puts "updated variable to $v"}}}
set th [thread::create {
puts "new thread id : [thread::id]"
proc fun {n} {
return [expr {$n*2}]
}
thread::wait
}]
# thread::send $th [list fun $t] res
thread::send -async $th [list fun 43] res
答案 0 :(得分:0)
您是否在等待源/主线程中的事件?如果不是,则永远不会处理导致res
变量设置的异步响应消息。