マルチスレッド化(threadモジュール)
GUI画面のボタンを押すことで処理が始まるようにしたのだが、その処理が重く長時間かかるような場合には、画面がフリーズした状態になってしまう。それを解消するためのマルチスレッド化は以外と簡単(のように見える)。
デモの中のThreads.pyにあるように、thread.start_new_threadで新たなスレッドをスタートする。
こうすれば、重い処理の実行中も画面がフリーズすることはなくなる。
import thread class hoge: ... def Start(self): thread.start_new_thread(self.Run, ()) def Run(self): # 重い処理
調子に乗って重い処理をすべてマルチスレッドにしたら、ビープ音が鳴るようになってしまった。処理は行われているようではあるが、マウスでポインタを動かせなくなり、ピ、ピ、ピーと鳴っている。
しばらくすると、処理が終わり、すべて元に戻る。
やはり正常に動作しているとは言えないか...。