Hallo zusammen,
Ich habe wieder ein Problem mit Python
Diesmal möchte ich einen Worker Thread nach belieben starten, beenden und danach wieder starten können.
Das starten und beenden bekomme ich auch grundsätzlich hin nur beim wieder starten bekomme ich eine Fehlermeldung.
Ich hab hier mal meinen Beispielcode:
Python
import time
import threading
class WorkerThread(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)
self.stoprequest = threading.Event()
def run(self):
while not self.stoprequest.isSet():
print("arbeite...")
time.sleep(.1)
def join(self, timeout = None):
self.stoprequest.set()
super(WorkerThread, self).join(timeout)
t_worker = WorkerThread()
t_worker.start()
time.sleep(1)
t_worker.join()
print("starte Thread neu...")
t_worker.start()
time.sleep(1)
Alles anzeigen
Beim zweiten t_worker.start() bekkomme ich den Fehler: RuntimeError: threads can only be started once.
Ich hab das Internet schon nach einer anderen Lösung zum beenden durchgesucht aber nichts gefunden das mein Problem lösen könnte.
Gibt es da eine bessere Lösung oder soll ich gleich versuchen einen eigenen Prozess zu starten?
Danke schonmal im Vorraus