wxpythonで長いタスク中でもレスポンシブなGUI。
いままでwxpythonからながーいタスクを始めたときはメインのFrame内のメソッドとして処理ループをおいて、そこでwx.Yield()を使うので済むときは済ませて、そうじゃない場合wx.lib.delayedresultを使っていたんだけども、マルチコアを有効に使いたいと思ったら標準ライブラリのthreadingモジュールを使うケースが結構多いみたいなので、その場合のそのひな形として参考になる例がwxpythonのWikiサイトの記事(LongRunningTasks)を見つけたので忘備録にメモ。なにげに記事にした記憶というのは残っているもので自分のブログを検索したり良くしているのでソーシャルブックマークよりも使えてたりする。
今回、別ファイルに関数としてすでに作ってある処理をwx側から呼び出して、結果を待っている状況で、できるだけこの関数をいじらずにGUIがリフレッシュされるようにしたかったんだけど、この場合Yieldが使えるかどうかわからなかったのでmultiprocessingモジュールつかってみたり色々ためしたもののpy2exeでパッケージ化するとどうも変なことが起こったりするので、結局wx.Yield()をループの中に入れたらそれであっさりうまくいってしまった。パフォーマンス落ちるかもだけどwx.Yield()が一番簡単でいいな。体感はしなかったがwx.YieldIfNeeded()とすれば多少パフォーマンスもマシになるかもしれない。というわけでthreadingは今回は道半ばでパス。
« Pubmedが遅いと思ったらEuropePMCというミラーもあります。 | トップページ | py2exeでwxPythonアプリをカッコ良い見た目でパッケージ化。 »
「Python」カテゴリの記事
- JupyterLabでも好きな外部エディターを使いたい!(2018.05.02)
- ローカルエリア内のJupyterLabサーバーにLAN経由で接続する。(2018.05.02)
- Juliaやってみよう。五日目。Pythonと速度比較。(2017.08.01)
- Juliaやってみよう。四日目。@timeでプロファイリング(2017.07.16)
- Juliaやってみよう。一日目。GRでプロット。(2017.07.12)
「日記・コラム・つぶやき」カテゴリの記事
- 地球寒冷化を否定する人々www(2019.01.02)
- Letter from home、September15thなどなどのピアノアレンジが素晴らしい件(2018.08.03)
- 2日半のfasting(断食)で劇的おなら予防。(2017.12.18)
- シネッセンス細胞がアツい。不老不死とハゲの治療が同時に可能か?(2017.11.18)
- 老化はエピジェネティクスな影響が積り、スプライシングに影響を与えるのかも(2017.11.20)
トラックバック
この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1169291/53559225
この記事へのトラックバック一覧です: wxpythonで長いタスク中でもレスポンシブなGUI。:
« Pubmedが遅いと思ったらEuropePMCというミラーもあります。 | トップページ | py2exeでwxPythonアプリをカッコ良い見た目でパッケージ化。 »
コメント