我想在一个线程中设置计时器并在我想取消设置由 gobject.timeout_add 设置的计时器时终止该线程,这是一个好方法吗?
基本上我想每 180 秒运行一次函数,但我希望能够随时停止它(从另一个函数调用)。如何正确实现这一目标?
我读过杀死线程是不好的!像这样的简单任务有多糟糕?
我想在一个线程中设置计时器并在我想取消设置由 gobject.timeout_add 设置的计时器时终止该线程,这是一个好方法吗?
基本上我想每 180 秒运行一次函数,但我希望能够随时停止它(从另一个函数调用)。如何正确实现这一目标?
我读过杀死线程是不好的!像这样的简单任务有多糟糕?
根据文档,当您调用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!
希望有帮助!