Threading.Timer - 維護重複函數的控制
Python 的threading.Timer 提供了一種機制來安排函數以指定的時間間隔運轉。但是,使用多次呼叫 start() 的初始方法可能會導致執行時間錯誤。
要解決此問題,建議建立自訂執行緒類,如下面的解決方案所示:
import threading class MyThread(threading.Thread): def __init__(self, event, function): threading.Thread.__init__(self) self.stopped = event self.function = function def run(self): while not self.stopped.wait(0.5): self.function()
在這個類別中,stopped事件用於控制執行緒的執行。該線程不是多次啟動和停止計時器,而是連續運行,定期檢查停止的事件。當事件設定後,線程終止。
在啟動計時器的程式碼中,您可以使用已停止的事件來停止計時器:
stopFlag = threading.Event() thread = MyThread(stopFlag, function) thread.start() # To stop the timer later on stopFlag.set()
這種方法提供了一個乾淨的方法來啟動、停止和重置計時器的有效方法,允許靈活控制重複函數的執行。
以上是如何使用Python的threading.Timer保持對重複函數的控制?的詳細內容。更多資訊請關注PHP中文網其他相關文章!