White scenery @showyou, hatena

If you have any comments, you may also send twitter @shsub or @showyou.

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を時間で一時停止して別の処理にまわしたりしたいってこと。