wxPython+Http
wxPythonとhttpを使ってcrochetを作ってるのだけど、httpで読みに行った時にGUI部分が操作できなくなるという問題がある。
バックグラウンドでhttpの取得処理をしつつ、GUIの操作も待たずに行う事はできないかなぁ。
ちなみにtwitterでyieldって話がでたり、threadモジュールとかを試したりしたのだけど、時間かかってるのは1関数(具体的にいうとurllib.read関数)なのでyieldで途中経過を返したりするのは不可。
追記:
イメージとしてはこんな感じ。
def func(): largeProcess()#実行に相当時間(例:1分)かかる処理。I/O処理なのでループ中にyieldは入れられない miniProcess()#実行が数秒で終わる処理
こんなプログラムがあるとき、並列処理ならminiProcessが数秒で片付きそうだけど、現在だとlargeProcessが処理し終わるまでminiProcessには移れそうもない。ここではminiProcessはfunc内にあるけど別にこれは他のとこにあってもいい。要は欲しいのはlargeProcessを時間で一時停止して別の処理にまわしたりしたいってこと。