2013-05-22 117 views
1

我喜歡在等待一段時間後輸出字符串的每個字母,以獲得打字機效果。異步等待/非阻塞在python中等待

for char in string: 
    libtcod.console_print(0,3,3,char) 
    time.sleep(50) 

但是,這阻止了主線程,並且程序變爲非活動狀態。
直到它完成
注意你不能再訪問:libtcod使用

+0

看起來像你需要看看[多線程(http://docs.python.org/2/library/threading.html )或[Multiprocessing](http://docs.python.org/2/library/multiprocessing.html)。 –

回答

3

除非有某些因素阻止你這樣做,只是把它變成一個線程。

import threading 
import time 

class Typewriter(threading.Thread): 
    def __init__(self, your_string): 
     threading.Thread.__init__(self) 
     self.my_string = your_string 

    def run(self): 
     for char in self.my_string: 
      libtcod.console_print(0,3,3,char) 
      time.sleep(50) 

# make it type! 
typer = Typewriter(your_string) 
typer.start() 
# wait for it to finish 
typer.join() 

這將防止睡眠阻塞你的主要功能。

的線程文件可採用found here
一個體面的例子可以found here