wxpython を使用して 3 ~ 4 個のノートブック パネルを持つ GUI を開発しようとしていますが、これらのパネルの 1 つ (マスター パネル) が abc.py という別の python スクリプトを呼び出します。この abc.py では、複数の (>10) スレッドを同時に実行しています。マスターパネルの実行ボタンを押すと、abc.py スクリプトのこれらの同時スレッドが開始されます。ここで私が直面している問題は、wxpython ノートブックが「実行ボタンを押してからすべてのスレッドが結合されるまで」の間ハングアップすることです。この間、パネルの他のボタンを制御することも、パネルを切り替えることもできません。この期間、ウィンドウがフリーズします。何が問題なのですか?この問題を回避するために誰かが私を適切な道に導くことができれば、私は本当に感謝しています. ありがとうございました..!!!
1 に答える
1
abc.py
また、への呼び出しを(とpopen
思いますが) スレッドにラップする必要があります。そうしないと、GUI がブロックされます。外部スクリプトのプロセスがその回答を収集している場合、スレッドセーフな方法で (重要!) に戻す必要がありますwxPython
。
より良い方法はabc.py
、可能であれば からインポートし、インポートされたオブジェクトを実行時間の長いスレッドでスピンすることです。
スレッドセーフに通信する方法については、wxPython wikiを参照してください。個人的には、最後の例が最も理解しやすく実装しやすいと思います。
于 2015-02-17T15:05:05.273 に答える