Windows システム コール (ReadFile() や WriteFile() など) を行う ActiveX (COM) DLL があります。メインの Python GUI スレッドからは問題なく動作します。しかし、スレッドから呼び出されると Python GUI がクラッシュします。私はオンラインでいくつかの調査を行っており、GILで何かをする必要があると考えています. 私は正しい軌道に乗っていますか?または、私を正しい方向に向けてください。ありがとうございました!
質問する
393 次
2 に答える
0
Vladimir が述べたように、お使いの COM コンポーネントはマルチスレッド セーフではない可能性があります。DLL が登録されている "Apartment" タイプをテストすることもできます。この記事では、この問題に関する概要を説明しています。
于 2012-05-30T09:02:09.900 に答える
0
コードを見ずに何かを言うのは難しいですが、可能性としては次のいずれかです。
- あなたの ActiveX はマルチスレッドをサポートしていません (それらの多くはサポートしていません)。別のスレッドからオブジェクトを操作しようとしています。
- ActiveX を含む DLL はスレッドごとの初期化を実行しますが、別のスレッドから呼び出した場合は初期化されません。
とにかく、GIL については何も言えませんが、過去に ActiveX を扱ったことがあるので、問題の原因はおそらく ActiveX にあると思います。
于 2012-05-29T18:38:35.290 に答える