Threading.Timer:以指定的時間間隔重複函數
使用Python 執行緒時,特別是嘗試重複啟動和停止計時器時,了解他們的行為至關重要。使用執行緒時遇到的一個常見挑戰是計時器收到運行時錯誤。
執行階段錯誤:
嘗試啟動已啟動的計時器時會發生執行階段錯誤。這是因為線程一旦啟動,就無法直接重新啟動。
解決方法:
要解決此問題,請考慮使用專用執行緒來處理計時器功能。實作方法如下:
建立計時器執行緒:
使用繼承自 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時如何避免執行階段錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!