を設定されていないupvar変数を送信する:子スレッドを返すようにするためにこのコードを保持しているの.tclファイルを調達した後TCLスレッド::私はこのようなコード持って
package require Thread
proc p1 {} {
set tid [thread::create {
proc executeCommand {command} {
return $command
}
thread::wait
}]
set result ""
::thread::send -async $tid [list executeCommand {"Hello thread world"}] result
#***Do some additional stuff***
vwait result
::thread::release $tid
puts $result
return $result
}
p1
を、私の期待はこんにちは」でありますvwaitが呼び出された後の「スレッドワールド」と、出力される 'result'変数がありますが、どちらも起こりません。 'result'変数は空白のままです。
プロシージャ(proc)ブロックからコードを取り出して.tclファイルをソースすると、それは完璧に動作しますが、システムがセットアップされた状態でプロシージャを使用する必要があります。
私が間違っていることがわかりません。
はい!これは完全に動作します - 素早く正確な応答のためにDonalに感謝します。 – Jake