from threading import Timer
from time import sleep
def foo():
print "timer went off!"
t = Timer(4, foo)
t.start()
for i in range(11):
print i
sleep(.5)
如果您想重复一遍,这是一个简单的解决方案:与其使用Timer
,而不是使用,Thread
而是将其传递给一个起作用的函数,如下所示:
def call_delay(delay, repetitions, func, *args, **kwargs):
for i in range(repetitions):
sleep(delay)
func(*args, *kwargs)
这不会做无限循环,因为如果执行不正确,可能会导致线程死亡并导致其他不愉快的行为。