Verständnis bzgl. QThread

Alles rund um die Programmierung mit Qt
Antworten
Nassian
Beiträge: 126
Registriert: 20. Juni 2005 21:14

Verständnis bzgl. QThread

Beitrag von Nassian »

Hi,

Ich habe ein kleines Verständnisproblem bzgl. QThread, vllt. kann mir da jemand weiterhelfen :)

Also, wie ich das verstanden habe, wird die Methode run() überschrieben, da hier der parallel auszuführende Code reinkommt. Nun, möchte ich eine Klasse schreiben, die quasi als Netzwerkkonfigurationsschnittstelle dient (also einfach einen Socket Server, der Texte austauscht). Und diese Klasse soll nun parallel zum Hauptprogramm und anderen Threads laufen.

Nun zu meiner eigentlichen Frage: Da ja die run() Methode keinen sinnvollen Inhalt für diese Klasse hat, beibt sie leer (Endlosschleife, oder einfach leer lassen damit der Thread weiterläuft?). Aber wenn slots von der Klasse aufgerufen werden, werden diese dann auch parallel ausgeführt, oder wird dafür das Hauptprogramm unterbrochen?

SG Alex
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Naja, wenn du run() leer läßt wird sich der Thread sofort wieder beenden. Ich würde zumindest ein exec() in run() reinpacken sonst funktionieren die Slots nicht...

Code: Alles auswählen

class MyThread : public QThread {
Q_OBJECT
protected:
  void run() {
    exec();
  }
};
Nassian
Beiträge: 126
Registriert: 20. Juni 2005 21:14

Beitrag von Nassian »

Ja, klar. Den exec() Aufruf habe ich so angenommen, ohne macht ja der Thread selten Sinn. Aber prinzipiell müsste es so funktionieren?

SG Alex
Antworten