TCL でマルチスレッドを使用しています。スレッド拡張を使用してスレッドを作成しています。次に、いくつかのコマンドをスレッドに送信します。また、さまざまなファイルでユーザー定義のプロシージャを使用しています。私の質問: 引数として渡したり、スレッド共有変数を使用したりせずに、メイン スレッドのグローバル変数を子スレッドで使用できるようにするにはどうすればよいですか?
それらの変数がいくつあるか分からないので、それらをすべてインポートしたいと思います
環境共有を調べてみましたが、取得した唯一の参照は、環境変数が既に共有されていることです。子スレッドがシステム全体を利用できるようにする必要があります。
ライブラリに関しては、簡単に入手できます。
サンプルコード
global var1
thread::create {
source <library files >(has dummyProc definition)
<execute some statements>
}
thread::send "dummyProc arg1 arg2...argN" result
私の問題:dummyProcはメインスレッドで利用可能な変数(var1など)を使用しますが、TSVを使用したり、引数として渡したりすることはありません。これらのグローバル変数のセット全体が存在するためです。