Ich muss in der Lage sein, eine Stop-Funktion eines laufenden Threads aufzurufen. Ich habe mehrere Wege versucht, dies zu erreichen, aber bisher kein Glück. Ich denke, ich brauche eine Thread-ID, aber ich habe keine Ahnung, wie das gemacht wird.kann Thread von einem Modul nicht stoppen
entsprechenden Code: Modell:
import MODULE
class do_it():
def __init__(self):
self.on_pushButton_start_clicked()
return
def on_pushButton_start_clicked(self):
self.Contr = MODULE.Controller()
self.Contr.start()
def on_pushButton_stop_clicked(self):
if self.Contr:
self.Contr.stop()
self.Contr = None
return
Modul:
import thread
class Controller():
def __init__(self):
self.runme = False
def start(self):
"""Using this to start the controllers eventloop."""
thread.start_new_thread(self._run,())
def stop(self):
"""Using this to stop the eventloop."""
self.runme = False
def _run(self):
"""The actual eventloop"""
self.runme = True
ich mein Problem denke hier liegt ...
mein Controller:
"""I want to use this to control my model, that in turn controls the module"""
def start_module():
start=do_it().on_pushButton_start_clicked()
return 'Ran start function'
def stop_module():
stop=do_it().on_pushButton_stop_clicked()
return 'Ran stop function'
Vielen Dank für Ihre Eingabe! Ich habe das Dokument gelesen und versucht, Threading zu verwenden (erfolglos wegen fehlender Kenntnisse und Erfahrungen). Ich stieß auf eine ähnliche Frage wie die, die du suchst. Ich denke, dass der obere Teil der am meisten gewählten Antwort ist, was für mich arbeiten würde; Ich habe jedoch keine Ahnung, wie ich es in meiner Situation umsetzen kann. Was soll ich als Argument übergeben, wenn ich StoppableThread (threading.Thread) aufruft? – Ivo