[英]Python periodic timer interrupt
如果不是进程,任何解决方案都会阻塞 main(),或者产生新线程。
最常用的解决方案是:
threading.Timer( t, function).start()
它可以递归使用,一个简单的应用是:
import threading
import time
class Counter():
def __init__(self, increment):
self.next_t = time.time()
self.i=0
self.done=False
self.increment = increment
self._run()
def _run(self):
print("hello ", self.i)
self.next_t+=self.increment
self.i+=1
if not self.done:
threading.Timer( self.next_t - time.time(), self._run).start()
def stop(self):
self.done=True
a=Counter(increment = 1)
time.sleep(5)
a.stop()
这个解决方案不会随着时间的推移而漂移
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.