tcl thread :: send -async不起作用

时间:2017-07-08 16:30:55

标签: multithreading tcl

我想在同步模式下向线程发送消息,并使用跟踪变量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

1 个答案:

答案 0 :(得分:0)

您是否在等待源/主线程中的事件?如果不是,则永远不会处理导致res变量设置的异步响应消息。