0

我在 Python 中有一个任务,我第一次运行这个任务,我想在 60 秒后运行相同的任务,但最后一次只有一个。

4

2 回答 2

3

第一次直接调用任务,第二次从计时器调用。调用wx.CallLater不会阻塞,因此应用程序在计时器运行时保持响应。

do_task()
wx.CallLater(60 * 1000, do_task)

http://www.wxpython.org/docs/api/wx.CallLater-class.html

于 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 回答