TCL에서 변수 변경에 대한 폴링을 유지하고 그 후에 특정 작업을 수행하는 메커니즘이 있습니다.TCL에서 변수가 변경 될 때 특정 작업 수행
나는 에 대해 읽었지만 스크립트를 일시 중지하고 있습니다. 변수 값이 변경되면 스크립트가 실행되고 그 사이에 특정 작업을 수행합니다.
vwait의 종류가 비동기입니다.
TCL에서 변수 변경에 대한 폴링을 유지하고 그 후에 특정 작업을 수행하는 메커니즘이 있습니다.TCL에서 변수가 변경 될 때 특정 작업 수행
나는 에 대해 읽었지만 스크립트를 일시 중지하고 있습니다. 변수 값이 변경되면 스크립트가 실행되고 그 사이에 특정 작업을 수행합니다.
vwait의 종류가 비동기입니다.
변수가 변경 될 때마다 (또는 플래그에 따라 읽기 또는 삭제 될 때) 즉시 조치를 취할 수 있도록 변수에 추적을 첨부 할 수 있습니다. 다음 예를 시도해보십시오.
set abc 123
proc exampleCallback args {
global abc
puts "The variable abc is now $abc"
}
trace add variable abc write exampleCallback
incr abc
incr abc
incr abc
로컬 변수를 추적 할 수도 있지만 권장하지는 않습니다. 또한 내부적으로 vwait
명령은 변수가 기록 될 때 플래그를 트립하는 추적을 설정합니다. 해당 플래그는 이벤트 루프가 리턴 될 때 대기를 알려줍니다. 그 추적은 스크립트 수준의 API가 아닌 Tcl의 C API를 사용하여 설정됩니다 ...
또한 특정 간격의 변수의 현재 값에 대한 폴링을 유지하기 위해 재귀 프로 시저를 사용할 수도 있습니다. 변수에 대한 특정 조건이 충족되면 재귀. 예를 들어
:
set x 1
proc CheckVariableValue {
global x
if { $x >= 5 } {
puts "end"
return 1;
}
else{
incr x
puts $x
after 1000 CheckVariableValue
}
}
CheckVariableValue