我有一个GUI应用程序,需要在后台做一些简单的事情(更新wx python进度条,但这并不重要)。我看到有一个threading.timer类。。但似乎没有办法重蹈覆辙。所以如果我使用计时器,我最终不得不在每次执行时创建一个新线程。。。比如:import threading
import time
def DoTheDew():
print "I did it"
t = threading.Timer(1, function=DoTheDew)
t.daemon = True
t.start()
if __name__ == '__main__':
t = threading.Timer(1, function=DoTheDew)
t.daemon = True
t.start()
time.sleep(10)
好像我在做一堆线,做了一件傻事就死了。。为什么不写为:import threading
import time
def DoTheDew():
while True:
print "I did it"
time.sleep(1)
if __name__ == '__main__':
t = threading.Thread(target=DoTheDew)
t.daemon = True
t.start()
time.sleep(10)
我是不是错过了让计时器继续工作的方法?这两种选择似乎都很愚蠢。。。我正在寻找一个更像java.util.timer的计时器,它可以安排线程每秒钟发生一次。。。如果在Python中没有方法,那么我上面的哪种方法更好,为什么?