Threading.Timer – Behalten der Kontrolle über sich wiederholende Funktionen
Pythons Threading.Timer bietet einen Mechanismus zum Planen der Ausführung von Funktionen in bestimmten Zeitintervallen. Der anfängliche Ansatz mit mehreren Aufrufen von start() kann jedoch zu Laufzeitfehlern führen.
Um dieses Problem zu beheben, wird empfohlen, eine benutzerdefinierte Thread-Klasse zu erstellen, wie in der folgenden Lösung gezeigt:
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()
In dieser Klasse wird das Stopped-Ereignis verwendet, um die Ausführung des Threads zu steuern. Anstatt den Timer mehrmals zu starten und zu stoppen, läuft der Thread kontinuierlich und überprüft das gestoppte Ereignis in regelmäßigen Abständen. Wenn das Ereignis festgelegt wird, wird der Thread beendet.
Im Code, der den Timer initiiert hat, können Sie dann das gestoppte Ereignis verwenden, um den Timer zu stoppen:
stopFlag = threading.Event() thread = MyThread(stopFlag, function) thread.start() # To stop the timer later on stopFlag.set()
Dieser Ansatz sorgt für eine Bereinigung und effiziente Möglichkeit zum Starten, Stoppen und Zurücksetzen des Timers, was eine flexible Kontrolle über wiederkehrende Funktionsausführungen ermöglicht.
Das obige ist der detaillierte Inhalt vonWie behält man mit Pythons threading.Timer die Kontrolle über sich wiederholende Funktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!