2016-07-19 4 views
7

私はPythonistaという小さなアプリを使っています。Pythonistaは数秒おきに色を変えることができます。ここでは、無限ループでこのことをどうやってやっていこうとしているかの例を示します。ここPython:何かをしてから睡眠をやり直してください

while True: 
    v['example'].text_color = 'red' 
    time.sleep(0.5) 
    v['example'].text_color = 'blue' 
    time.sleep(0.5) 
    # and so on.. 

問題は、Pythonは何度も寝続けているので、これは私のプログラムを凍結し、そして私はどんな変化を見たことがないということです。変更(赤/青/などに変わるテキスト)を確認してから、次のタスクx時間後に行うなどの方法がありますか?

+12

*マルチスレッド*を調べる必要があります。あなたのタスクはすべてグラフィックスを含む1つのスレッドで実行されています。あなたが「睡眠」と言うと、**すべてが**眠ります。あなたは、プログラムの残りの流れを中断することなく、連続した実行を保証するために、ループを非同期コールバックを持つ別のスレッドに入れます。 –

+0

@PierceDarragh、ありがとう –

+0

問題ありません!チュートリアルはオンラインで数多くあり、ここには多くの記事があります。運が良かった! :) –

答えて

2

コードを実行する新しいスレッドを作成する必要があります。コードを独自のメソッドsome_function()に入れて、次のように新しいスレッドを開始します。

thread = Thread(target = some_function) 
thread.start() 
関連する問題