我需要一个每n毫秒调用一次函数的计时器。 这不应该是一个endloss循环(虽然是真的)或类似的东西
import threading
def printit():
threading.Timer(5.0, printit).start()
print "Hello, World!"
或
def printit():
root.after(100,printit())
因为我有一个应该能够互动的GUI。这样我就可以停止计时器了。
一些想法? 谢谢!
答案 0 :(得分:3)
你的问题明确表示不使用after
,但这正是你使用tkinter的方式(假设你的函数完成时间不超过几百毫秒)。例如:
def printit():
if not stopFlag:
root.after(100,printit)
...
def stop():
global stopFlag
stopFlag = False
...
printit()
上述操作会导致printit
每100毫秒调用一次,直到其他一些代码将stopFlag
设置为False
。
注意:如果printit
花费超过100毫秒,这将无法正常工作。如果函数需要两次时间,那么您唯一的选择是将函数移动到一个线程中,或者将其移动到另一个进程。如果printit
需要100毫秒或更短时间,则上述代码足以让您的UI保持响应。
答案 1 :(得分:0)
window.location.href="index.php?value=1";