にマルチスレッド私は、IronPythonの中に「スクリプトクラス」を持っている、と私のアプリ内のスクリプトは、そのインスタンスのメソッドを呼び出すことで動作します。私は、複数のスレッドからスクリプトを呼び出すことを実装する必要があります。それを行う正しい方法は何ですか?は、IronPythonの
私は複数の問題があります。
は
ScriptScope
スレッドセーフですか?情報は矛盾している。 ScriptScope's documentation says:「ScriptScopeはスレッドセーフではありませんホストはロックのいずれか複数のスレッドが同じモジュールにアクセスすることができなければならないとき、またはスレッドごとにコピーを作成する必要があります。」 ScriptScopeスレッド間で共有できるようにしかし、IronRubyのは、同じDLR及びが「ScriptRuntime、たScriptEngine、及びScriptScopeスレッド間で使用されるように設計安全なすべてのスレッドである。具体的には、ScriptScopeは、スレッドセーフなデータストアを使用すること@JimmySchementi saysを使用します"複数の
ScriptScope
を作成すると、同じ初期化スクリプトを複数回実行することになります。 、のは、私が10個のPythonスクリプト・ファイルを実行することを想定してみましょう5つのアセンブリをインポートし、全体的に「スクリプトオブジェクト」準備をするコードのかなりを実行します。それぞれのスレッドごとに同じコードをたくさん実行する時間とメモリのコストを避ける方法はありますか?(
ThreadStaticAttribute
を適用し、それがある)ScriptScope
変数スレッド静的作って行くためにTask.Run
方法によって利用されるすべてのスレッドの初期化を実行していますか?複数のスコープのコストが高いためか、私には、同時実行の制限とTaskScheduler
を使うべきなのでしょうか?全体的に
:正しく複数のスレッドで異なる引数で同じスクリプトを実行している実装する方法?スクリプトは同時に実行する必要があり、競合状態によってクラッシュしてはなりません。
私はあなたのために感じます。私は、Microsoftが正式にそれをサポートしなくなって以来、あらゆる側面で欠けているironpythonとironrubyの両方のドキュメントを発見しました。 –