如何取消设置python gobject.timeout_add设置的计时器?线程?

时间:2012-05-31 07:41:31

标签: python multithreading timer pygobject

我想在线程中设置计时器并在我想取消设置gobject.timeout_add设置的计时器时终止该线程,这是一个很好的方法吗?

基本上我想每180秒运行一个函数,但我希望能够随时停止它(从另一个函数调用)。如何正确实现这一目标?

我已经读过杀死一个帖子很糟糕!对于像这样的简单任务有多糟糕?

1 个答案:

答案 0 :(得分:12)

根据docs,当您致电gobject.timeout_add时,它会返回int,这对于该超时来源是唯一的。然后在docs中进一步向下,你会看到一个名为gobject.source_remove的函数,它以int为参数,为你删除事件源而不必乱用线程等等。 例如:

integer_id = gobject.timeout_add( 180000, callback_func)
#And then somewhere else in your code...
gobject.source_remove(integer_id) #This will stop the timeout_add from occurring!

希望有所帮助!