我尝试创建一个每60秒与服务器同步的程序。我用来做的代码如下:
threading.Timer(60, self.sync, [""]).start()
非常简单,效果很好。问题是如果我决定暂停机器一段时间然后再回来,它就不再起作用了。好像计时器停止工作一样。我怀疑这与计时器所感知的现实世界时间差距有关,但我不确定如何使其发挥作用。
我制作的应用程序是针对OSX的,所以可能有一个我可以访问的系统级计时器?
答案 0 :(得分:0)
我不知道这是否会更好,但你可以尝试一下:
import time
def call_sync(freq, meth):
cur_time = time.time()
while True:
while (time.time() - cur_time) < freq:
yield None
meth()
cur_time = time.time()
def sync():
print("synced")
def main():
timer = call_sync(60, sync)
while True:
time.sleep(1)
next(timer)
if __name__ == '__main__':
main()