Tcl のスレッド間で双方向通信を行う必要がありますが、取得できるのは、唯一のマスター -> ヘルパー通信チャネルとしてパラメーターを渡す一方向だけです。ここに私が持っているものがあります:
proc ExecProgram { command } {
if { [catch {open "| $command" RDWR} fd ] } {
#
# Failed, return error indication
#
error "$fd"
}
}
tclsh83 を呼び出すには、たとえば ExecProgram "tclsh83 testCases.tcl TestCase_01"
testCases.tcl ファイル内で、渡された情報を使用できます。例えば:
set myTestCase [lindex $argv 0]
testCases.tcl 内で、パイプに出力できます。
puts "$myTestCase"
flush stdout
そして、プロセス ID を使用して、マスター スレッド内に置きます。
gets $app line
...ループ内。
これはあまり良くありません。そして双方向ではありません。
2 つのスレッド間の Windows での tcl の簡単な双方向通信方法を知っている人はいますか?