Python - 如何在必要时杀死计时器而不是让它永远运行?

时间:2013-10-31 10:26:27

标签: python python-2.7 gtk pygtk

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

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

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

2 个答案:

答案 0 :(得分:2)

两个选项:

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

此外,“每分钟呼叫”评论错误:句柄将每秒调用一次。

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

答案 1 :(得分: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