Threading.Timer: 指定した間隔で関数を繰り返す
Python スレッドを使用する場合、特にタイマーを繰り返し開始および停止しようとする場合、彼らの行動を理解することが重要です。 threading.Timer の使用中に発生する一般的な課題の 1 つは、RuntimeError を受信することです。
The Runtime Error:
すでに開始されているタイマーを開始しようとすると、RuntimeError が発生します。 。これは、一度開始されたスレッドは直接再起動できないためです。
回避策:
この問題に対処するには、専用のスレッドを使用してタイマー関数を処理することを検討してください。アプローチ方法は次のとおりです:
タイマー スレッドの作成:
Thread を継承し、タイマー ロジックを組み込んだカスタム スレッド クラス (MyThread) を使用します。
import threading class MyThread(threading.Thread): def __init__(self, event): Thread.__init__(self) self.stopped = event def run(self): while not self.stopped.wait(0.5): print("my thread") # call your function here
の開始と停止タイマー:
タイマーを開始するコードで stopFlag イベントを作成し、それを使用してタイマーを停止するタイミングを通知します。
stopFlag = threading.Event() thread = MyThread(stopFlag) thread.start() # Start the timer thread once # To stop the timer, set the stopFlag event stopFlag.set()
このアプローチの利点:
以上がPython で threading.Timer を使用するときに RuntimeError を回避する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。