4

スレッドにタイマーを設定し、gobject.timeout_add によって設定されたタイマーの設定を解除したいときにそのスレッドを強制終了したいのですが、これは良い方法ですか?

基本的には180秒ごとに関数を実行したいのですが、いつでも停止できるようにしたいです(別の関数から呼び出されます)。これを適切に達成する方法は?

スレッドを殺すことは悪いことだと読みました! このような単純なタスクはどれほど悪いのでしょうか?

4

1 に答える 1

12

ドキュメントによると、呼び出すと、そのタイムアウトソースに固有のgobject.timeout_adda が返されます。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!

それが役立つことを願っています!

于 2012-06-20T14:34:45.257 に答える