python sched program可能的时间问题

时间:2015-03-28 17:16:40

标签: python pygame scheduler pyopengl

所以我有很多事件需要按照不同的延迟进行安排:

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为永远的计时器事件创建一个新线程。有没有办法让单个线程调用?

1 个答案:

答案 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>