Fensterln in Threads
-
Servus,
ich hab da ein kleines organbisatorisches Problem.
Ich trenne Oberfläche und reine Steuerung einer Anlage. Also zwei Prozesse, die wohl per Socks miteinander kommunizieren werden.
Die Steuerung wird im Grunde AUCH eine GUI-Anwendung. Aber eben eine ohne Fenster.. Ab in die Taskleiste und fertig. In der Steuerung leben noch X weitere Threads, die am Arbeiten sind.
Nun sollen die Daten eines der Subthreads (reden wir jetzt mal vom Extrem: Bildserie) dargestellt werden. ABER nur im Wartungsmodus der Anlage. Das ist also nicht Teil der normalen Oberfläche. Diese Bilderserie wird in einem der Threads erzeugt. (Normalerweise wird der kram weiterbearbeitet und nicht dargestellt)
WIe manage ich das nun? Mir ist es latte wo die Bilder angezeigt werden. Gerne in einem seperaten Fenster.
Dummerweise bin ich da bei Borland böse reingefallen. Formular verwendet und dieses in einem dieser Unterthreads angelegt. Klaro: Thread hat keine Message Queue -> Stand der Thread, stand das Fenster.
Ich möchte also im Grunde ein Fenster aus einem anderen Thread, als dem Hauptthread einer Anwendung starten. Dieses Fenster soll dann irgendwas anzeigen. Das Fenster soll sich aber noch verschieben und schließen lassen, auch wenn der Thread aus dem das Fenster stammt, pausiert ist.
Alternativ geht es auch wenn ich aus einem Thread einen weiteren Thread anwerfe, der sich nur um das Fenster kümmert...Wie kriege ich das nun gebacken ohne die Daten bzw. die Kommunikation durch zig Threads zu schleifen?
Ich habe im Einsatz: WinAPI, wxwidgets und natürlich die C++ STL
-
Ich würde einfach einen Thread aufmachen, der sich um dieses eine Fenster kümmert. Der holt sich dann die Daten (von sonstwo), musst du dann natürlich synchronisieren. Also einfach einen Arbeiter+Datenbereitstellungsthread und einen Fenster+Datenanzeigthread