« Pubmedが遅いと思ったらEuropePMCというミラーもあります。 | トップページ | py2exeでwxPythonアプリをカッコ良い見た目でパッケージ化。 »

2013年10月10日 (木)

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」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: wxpythonで長いタスク中でもレスポンシブなGUI。:

« Pubmedが遅いと思ったらEuropePMCというミラーもあります。 | トップページ | py2exeでwxPythonアプリをカッコ良い見た目でパッケージ化。 »

しろののツイッタータイムライン

  • ツイッターは5つ目も凍結されました。6つ目での復活も不可能。なのでnoteに注力しています。

    と思ったら、イーロン・マスクの買収が公になってアカウントが復活できました。ありがとうマスク。

    トランプ関連記事の一覧リスト

オススメたち

2024年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

はてブ

無料ブログはココログ