スレッドにタイマーを設定し、gobject.timeout_add によって設定されたタイマーの設定を解除したいときにそのスレッドを強制終了したいのですが、これは良い方法ですか?
基本的には180秒ごとに関数を実行したいのですが、いつでも停止できるようにしたいです(別の関数から呼び出されます)。これを適切に達成する方法は?
スレッドを殺すことは悪いことだと読みました! このような単純なタスクはどれほど悪いのでしょうか?
スレッドにタイマーを設定し、gobject.timeout_add によって設定されたタイマーの設定を解除したいときにそのスレッドを強制終了したいのですが、これは良い方法ですか?
基本的には180秒ごとに関数を実行したいのですが、いつでも停止できるようにしたいです(別の関数から呼び出されます)。これを適切に達成する方法は?
スレッドを殺すことは悪いことだと読みました! このような単純なタスクはどれほど悪いのでしょうか?
ドキュメントによると、呼び出すと、そのタイムアウトソースに固有のgobject.timeout_add
a が返されます。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!
それが役立つことを願っています!