2016-07-19 18 views
7

Her birkaç saniyede bir şeyler üzerinde metin rengini değiştirmemi sağlayan Python adlı Pythonista için küçük bir uygulama kullanıyorum. İşte bunu sonsuz bir döngüde yapmak için nasıl uğraştığımı gösteren bir örnek; Python: Birşeyler uyuyun, tekrarlayın

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

burada mesele

Python tekrar tekrar uyku tutar çünkü bu benim programı donduruyor ve ben herhangi bir değişiklik görmek asla olmasıdır. Değişikliği görebilmenin bir yolu var mı (metin kırmızı/mavi/vs'ye dönüşüyor) ve daha sonra bir sonraki görev x miktarını yapıyor, vb.

+12

* Çoklu okumaya * bakmanız gerekir. Görevlerinizin hepsi bir iş parçacığında - grafikler de dahil olmak üzere - çalışıyor. "Uyu" derken, herşey ** uyur. Ne yapmak istediğiniz, döngüyü, programın geri kalanının akışını kesintiye uğratmadan sürekli yürütmeyi sağlamak için asenkron geri çağrılarla ayrı bir iş parçacığına sokmaktır. –

+0

@PierceDarragh Yapar, teşekkürler –

+0

Sorun değil! Online olarak çok sayıda eğitici ve burada birçok yayın var. İyi şanslar! :) –

cevap

2

Kodunuzu çalıştıran yeni bir konu oluşturmanız gerekecektir. Kendi kodunuzu some_function() 'a getirin ve aşağıdaki gibi yeni bir iş parçacığı açın:

thread = Thread(target = some_function) 
thread.start()