QThread in DLL, Signals aus Mainprogram
Verfasst: 15. Juli 2009 13:23
Hi,
ich habe ein kleines konzeptuelles Problem.
Ich habe in einer DLL eine Klasse, die in einem eigenen Thread läuft.
Dazu wird von dem Hauptprogramm, welches die DLL einbindet, eine Initfunktion aufgerufen, die die Klasse instanziiert und den Thread startet. Nun würde ich ganz gerne zwischen diesem Thread und dem Hauptprogramm kommunizieren.
Ich habe ein SharedObject, in das beide Seiten Daten schreiben können. Um aber nicht dauernd dieses Objekt pollen zu müssen um eine Zustandsänderung zu sehen hatte ich naiv ersteinmal an Signals und Slots gedacht mit denen ich ein ChangeState signalisieren könnte. Allerdings ist mir dann augefallen, dass der Thread in der DLL gar keine Kenntnis über die Eventloop des Hauptprogramms hat und umgekehrt. Entsprechend werden connects wohl nicht funktionieren.
Gibt es eine Möglichkeit dies trotzdem zu realisieren, indem man dem Thread eine fremde Eventloop gibt oder ähnliches?
Oder habt ihr andere Ideen zur Kommunikation zwischen diesen beiden Threads?
Vielen Dank.
ich habe ein kleines konzeptuelles Problem.
Ich habe in einer DLL eine Klasse, die in einem eigenen Thread läuft.
Dazu wird von dem Hauptprogramm, welches die DLL einbindet, eine Initfunktion aufgerufen, die die Klasse instanziiert und den Thread startet. Nun würde ich ganz gerne zwischen diesem Thread und dem Hauptprogramm kommunizieren.
Ich habe ein SharedObject, in das beide Seiten Daten schreiben können. Um aber nicht dauernd dieses Objekt pollen zu müssen um eine Zustandsänderung zu sehen hatte ich naiv ersteinmal an Signals und Slots gedacht mit denen ich ein ChangeState signalisieren könnte. Allerdings ist mir dann augefallen, dass der Thread in der DLL gar keine Kenntnis über die Eventloop des Hauptprogramms hat und umgekehrt. Entsprechend werden connects wohl nicht funktionieren.
Gibt es eine Möglichkeit dies trotzdem zu realisieren, indem man dem Thread eine fremde Eventloop gibt oder ähnliches?
Oder habt ihr andere Ideen zur Kommunikation zwischen diesen beiden Threads?
Vielen Dank.