Прежде всего, это продолжение предыдущего вопроса mine .
Я хотел бы использовать многопоточность в 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
истинной, я не получаю такую ошибку переменной.Я понимаю, что это потому, что процесс имеет доступ только к глобальной области видимости.Однако в этой ситуации я хотел бы содержать переменную, локальную для класса.
Есть ли способ сделать это?