所以我有很多事件需要按照不同的延迟进行安排:
delays = [1,3,5,30, 40, 35, 12, 46, 52]
我将延迟安排为:
s = sched.scheduler(time.time, time.sleep)
for lagtime in delays:
s.enter(lagtime, 1, self.drawOnCanvas, (arg1, arg2, arg3))
函数drawOnCanvas正在做一些pygame / opengl操作
问题是python time模块在几秒钟内具有精度,我想以毫秒为单位移动。我可以将延迟设置为:
delays = [x/1000 for x in delays]
调度程序需要一段时间。时间和时间。睡眠。我可以在这里使用日期时间吗?它可以容纳它吗?
第二,我正在使用鼠标进行一些操作,感觉鼠标被调度程序阻止了。有没有办法阻止鼠标被阻止?
编辑:我实际上认为我需要一个非阻塞调度程序,但描述的线程方法here为永远的计时器事件创建一个新线程。有没有办法让单个线程调用?
答案 0 :(得分:1)
python time模块具有精确的秒数
在大多数现代平台上都没有 - 时间戳有一个小数部分,所以虽然度量单位是秒,但精度通常比毫秒要好得多。
delays = [x/1000 for x in delays]
在Python 3中没问题,其中/
是非截断的。为了安全起见,Python 2,你最好还是
delays = [x/1000.0 for x in delays]
除此之外,您现有的调度程序应该可以正常工作。 datetime
模块没有sleep
功能,所以在这里做一些工作(尽管可行,但我真的没有动力去做这项工作)。< / p>