如果我的头衔有点不清楚,我很抱歉。基本上我想打印一个‘’持续5秒,然后执行一段代码。这是我尝试过的:
for iteration in range(5) :
timer = threading.Timer(1.0, print_dot)
timer.start()
#Code chunk似乎计时器为每个实例都启动了自己的线程,所以五个计时器都离得很近,而且代码块也执行得太早了。
发布于 2010-07-24 17:49:19
使用time.sleep()。
http://docs.python.org/library/time.html#time.sleep
发布于 2010-07-24 18:03:29
您的示例将5个计时器排入队列,并(相对地)一次启动所有计时器。
相反,应该链接计时器。伪代码(因为我几乎不懂python):
iterationCount = 0
function execute_chained_print_dot:
if iterationCount < 5
iterationCount = iterationCount + 1
timer = threading.Timer(1.0, execute_chained_print_dot)
timer.start()
print_dot()
execute_chained_print_dot()这里假设python Timer类只触发一次print_dot方法。如果它不这样做,并且反复触发print_dot,直到它停止,那么请执行以下操作:
iterationCount = 0
timer = threading.Timer(1.0, execute_print_dot_until_finished)
timer.start()
function execute_print_dot_until_finished:
if iterationCount < 5
iterationCount = iterationCount + 1
print_dot()
else
timer.stop()免责声明:对于本代码中的任何off-by-one错误,我不承担任何责任;)
https://stackoverflow.com/questions/3324604
复制相似问题