Einsatz von mehreren Threads
Verfasst: Dienstag 15. August 2006, 12:26
Hallo,
ich habe eine Applikation, in der Messwerte von einer Hardwareplatine als Diagramm und als Messwert dargestellt werden.
Die Messwerte werden alle 50mSec timer-getriggert von der Platine abgeholt.
Zur Visualisierung habe ich jetzt zwei Threads gestartet.
Einem zum Aktualiseren des Diagramms und den zweiten zum aktualisieren der Messwerte in Form von wxStaticText.
Mein Problem ist, wenn ich beide Threads zum Aktualisieren der GUI starte, wird nur die Aktualisierung der GUI durch den zuletzt gestarteten Thread durchgeführt. Dies bedeutet, nur die Funktion "RedrawValues" wird ausgeführt. Das Diagramm wird im diesem Fall dann nicht mehr aktualisiert.
Probehalber habe ich nur den Thread zum Aktualisieren des Diagramms("RedrawGraph") gestartet. In diesem Fall funktioniert die Aktualisierung des Diagramms und man erhält eine laufende Kennlinie für die Messwerte.
Hat jemand eine Idee, warum bei zwei Threads nur der eine ausgeführt wird?
Eine Zusammenfassung der GUI-Aktualisierung in einem Thread(Diagramm und Messwerte) möchte ich vermeiden.
Danke für eure Hilfe
greets george
ich habe eine Applikation, in der Messwerte von einer Hardwareplatine als Diagramm und als Messwert dargestellt werden.
Die Messwerte werden alle 50mSec timer-getriggert von der Platine abgeholt.
Zur Visualisierung habe ich jetzt zwei Threads gestartet.
Einem zum Aktualiseren des Diagramms und den zweiten zum aktualisieren der Messwerte in Form von wxStaticText.
Code: Alles auswählen
thread.start_new_thread(self.RedrawGraph, ())
thread.start_new_thread(self.RedrawValues, ())
def RedrawValues(self):
while (self.__btnState == BtnState.BTN_STATE_MONITOR):
if (self.__CaptureCounter >= 5):
self.staticTextDiffVal.SetLabel(str(self.__curDiff))
self.staticTextKalVal.SetLabel(str(self.__curGCF))
def RedrawGraph(self):
while (self.__btnState == BtnState.BTN_STATE_MONITOR):
if (self.__CaptureCounter >= 5):
self.__PlotCurve()
Probehalber habe ich nur den Thread zum Aktualisieren des Diagramms("RedrawGraph") gestartet. In diesem Fall funktioniert die Aktualisierung des Diagramms und man erhält eine laufende Kennlinie für die Messwerte.
Hat jemand eine Idee, warum bei zwei Threads nur der eine ausgeführt wird?
Eine Zusammenfassung der GUI-Aktualisierung in einem Thread(Diagramm und Messwerte) möchte ich vermeiden.
Danke für eure Hilfe
greets george