0

我如何杀死这个计时器,一旦它被执行/启动?

def my_timer(*args):
    return True# do ur work here, but not for long

gtk.timeout_add(1000, my_timer) # call every min
4

2 回答 2

1

两种选择:

  • 如果您知道 my_timer() 函数内部不应再次调用它,则返回 False
  • 或者,存储 timeout_add() 返回的事件 id 并g_source_remove(event_id)在不再需要时执行

此外,“每分钟调用一次”注释是错误的:句柄将每秒调用一次。

建议:如果您不需要亚秒级精度,请使用 timeout_add_seconds()。它允许 glib 优化事物并且更适合电源管理。

于 2013-10-31T12:18:31.127 回答
0
def my_timer(*args):
    return True# do ur work here, but not for long

t =gtk.timeout_add(1000, my_timer) # call every min
time.sleep(5)
gtk.timeout_remove(t)              # kill the timer
于 2013-10-31T13:20:45.193 回答