Seite 1 von 1

Verständnis bzgl. QThread

Verfasst: 5. März 2006 13:50
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

Verfasst: 5. März 2006 16:34
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();
  }
};

Verfasst: 5. März 2006 17:00
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