4

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

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

我读过杀死线程是不好的!像这样的简单任务有多糟糕?

4

1 回答 1

12

根据文档,当您调用gobject.timeout_add它时,它会返回一个int对于该超时源来说是唯一的。然后在文档的更下方,您会看到一个名为的函数,该函数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!

希望有帮助!

于 2012-06-20T14:34:45.257 回答