Threading.Timer: 指定した間隔で関数を繰り返す
Python の threading.Timer モジュールは、指定した時間に実行する関数をスケジュールする便利な方法を提供します間隔。ただし、ユーザーがこれらのタイマーの実行を制御しようとすると、問題が発生する可能性があります。
よくある問題の 1 つは、タイマーを再起動するときに発生する RuntimeError です。その理由は、threading.Timer オブジェクトは 1 回しか開始できないためです。これに対処するには、同じタイマーを複数回再起動するのではなく、タイマーを管理する別のスレッドを作成することをお勧めします。
このアプローチを実装する方法の例を次に示します。
import threading import time def my_function(): print("Function called") # Create an event to signal when the thread should stop stop_event = threading.Event() # Define a thread class that runs the timer class TimerThread(threading.Thread): def run(self): while not stop_event.is_set(): # Execute the function at specified intervals time.sleep(0.5) my_function() # Create and start the timer thread timer_thread = TimerThread() timer_thread.start() # Pause the timer by setting the stop_event time.sleep(5) stop_event.set() # Wait for the thread to finish timer_thread.join()
この例では、TimerThread は一度開始されると無期限に実行され、タイマー ロジックは run() メソッド内にカプセル化されます。タイマーを制御するには、stop_event を設定してスレッドに実行を停止する信号を送信します。このアプローチにより、タイマーの制御が向上し、タイマー オブジェクトの再起動に関連する RuntimeError が回避されます。
以上がPython で `threading.Timer` オブジェクトを再起動するときに RuntimeError を処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。