Seite 1 von 1
QThread für eine Funktion anweden?
Verfasst: 14. Oktober 2009 13:35
von toem
Ich habe ein Programm, bei dem Daten eingelesen werden. Je nach Umfang dauert dies einige Sekunden.
Wie kann ich die Funktion zum Holen der Daten in einen Thread packen, damit das Fenster in dieser Zeit bedienbar bleibt?
Ich habe in den Beispielen zu QThread hierzu nichts gefunden, das ich anwenden könnte.
Verfasst: 14. Oktober 2009 13:51
von Mani99
Die beispiele in den examples machen aber genau das was du möchtest!
Klasse erstellen --> von QThread ableiten --> darin machen was du möchtest.
Im hauptprogramm diese klasse starten.
Verfasst: 14. Oktober 2009 14:07
von toem
also:
Code: Alles auswählen
class MainWindow : public QMainWindow
{
....
}
class MyThread : public QThread
{
public:
void run();
};
So weit bin ich ja gekommen. Im CPP dann:
Aber wie kann ich im Run eine Funktion aus MainWindow aufrufen?
Ich bin noch dabei von C# auf C++ umzusteigen und hänge hierbei total in der Luft.
Verfasst: 14. Oktober 2009 17:22
von RavenIV
in MyThread::run() kommt die Funktionalität, die Du im Thread laufen lassen möchtest.
Also das Daten einlesen.
Im MainProgramm erstellst Du dann eine Instanz von MyThread und rufst NeueInstanz.run() auf.
Alles andere solltest Du aus den Examples herleiten können.
Verfasst: 15. Oktober 2009 08:15
von pfid
RavenIV hat geschrieben:in MyThread::run() kommt die Funktionalität, die Du im Thread laufen lassen möchtest.
Also das Daten einlesen.
Im MainProgramm erstellst Du dann eine Instanz von MyThread und rufst NeueInstanz.run() auf.
Alles andere solltest Du aus den Examples herleiten können.
Nein, er muss start() aufrufen.
[edit]
@TE: Wenn du in C++ noch so wenig fit bist, könntest du dir und allen Beteiligten viel Schmerzen ersparen, indem du das Thema Threads auf einen Zeitpunkt verschiebst, an dem du wenigstens gut mit C++ umgehen kannst

Verfasst: 15. Oktober 2009 09:15
von AuE
BTW: wenn du die Daten regelmäßig einliest wäre für dich ein Threadpool und QRunnables wesentlich performanter!
Verfasst: 15. Oktober 2009 09:56
von pfid
AuE hat geschrieben:BTW: wenn du die Daten regelmäßig einliest wäre für dich ein Threadpool und QRunnables wesentlich performanter!
Warum?
Verfasst: 15. Oktober 2009 10:04
von AuE
Wieviel kostet es nen Thread zu erstellen?
Wenn die Threads schon da sind ist es um einiges effizienter