如何取消由Python gobject.timeout_add设置的定时器?线程?

4

我想在一个线程中设置定时器,并在我想要取消gobject.timeout_add设置的定时器时杀死该线程,这是一个好的方法吗?

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

我已经阅读过杀死线程是不好的!对于像这样简单的任务,它有多糟糕?

1个回答

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!

希望能对您有所帮助!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接