我想在一个线程中设置定时器,并在我想要取消gobject.timeout_add设置的定时器时杀死该线程,这是一个好的方法吗?
基本上,我想每隔180秒运行一次函数,但我希望能够在需要时停止它(从另一个函数调用)。如何正确实现这一点?
我已经阅读过杀死线程是不好的!对于像这样简单的任务,它有多糟糕?
我想在一个线程中设置定时器,并在我想要取消gobject.timeout_add设置的定时器时杀死该线程,这是一个好的方法吗?
基本上,我想每隔180秒运行一次函数,但我希望能够在需要时停止它(从另一个函数调用)。如何正确实现这一点?
我已经阅读过杀死线程是不好的!对于像这样简单的任务,它有多糟糕?
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!