我在 Python 中有一个任务,我第一次运行这个任务,我想在 60 秒后运行相同的任务,但最后一次只有一个。
问问题
477 次
2 回答
3
第一次直接调用任务,第二次从计时器调用。调用wx.CallLater
不会阻塞,因此应用程序在计时器运行时保持响应。
do_task()
wx.CallLater(60 * 1000, do_task)
于 2012-04-08T15:12:05.467 回答
0
如果你想在有间隙的情况下完成两次,最简单的方法就是睡一会儿:
from time import sleep
do_task()
sleep(60)
do_task()
请注意,如果您需要精确的 60 秒,这可能不合适。
实际的挂起时间可能少于请求的时间,因为任何捕获的信号都会在执行该信号的捕获例程后终止 sleep()。此外,由于系统中其他活动的调度,暂停时间可能比请求的时间长任意量。
在这种情况下,您可能希望存储睡眠前的时间并进行比较,以确保经过了正确的时间,例如,但在大多数情况下,它不需要那么精确。
请注意,这会暂停执行,如果您想在其他事情发生的情况下执行此操作,则需要查看线程。
于 2012-04-03T22:34:33.467 回答