まず、これは私の以前の質問のフォローアップです。
Tcl でスレッド化を使用したいのですが、Itcl と共同で使用します。
以下にサンプルを示します。
package require Itcl
package require Thread
::itcl::class ThreadTest {
variable thread [thread::create {thread::wait}]
variable isRunning 0
method start {} {
set isRunning 1
thread::send $thread {
proc loop {} {
puts "thread running"
if { $isRunning } {
after 1000 loop
}
}
loop
}
}
method stop {} {
set isRunning 0
}
}
set t [ThreadTest \#auto]
$t start
vwait forever
ただし、条件ステートメントを実行してisRunning
変数が true かどうかを確認しようとすると、no such variable エラーが発生します。これは、proc がグローバル スコープにしかアクセスできないためだと理解しています。ただし、この状況では、クラスにローカルな変数を含めたいと思います。
これを達成する方法はありますか?