Seite 1 von 1

QThread abgeleitet Klasse macht keinen neuen Thread auf

Verfasst: 3. März 2008 21:53
von pospiech
Ich habe eine Klasse die Berechnungen durchführt von einer QThread Klasse abgeleitet um die Berechnung in einem eigenen Thread durchzuführen. Beim Aufrufen wird jedoch die GUI blockiert. Daher wüsste ich gerne ob meine Implementierung überhaupt richtig ist.

Hier eine Erklärung der gesamten Beteiligten Klassen

CalculationThread <- QThread abgeleitet
- Implementiert 'Iterate()' als virtuell

CLaserDynamicsBase <- CalculationThread abgeleitet
- Implementiert 'Iterate()' -> ruft run() auf
- Implementiert 'run()' -> ruft Iteration() auf
- Implementiert 'Iteration()' virtuell

CLaserDynamics <- CLaserDynamicsBase abgeleitet
- Implementiert 'Iteration()'

Das ganze starte ich dann in MainWindow.cpp mit
LaserDynamics.Iterate(0);

Es wird also die run() von QThread aufgerufen, aber anscheint kein eigener Thread gestartet.

Ist das so nun richtig implementiert ?

Matthias

Verfasst: 3. März 2008 22:06
von Christian81

Verfasst: 3. März 2008 22:17
von pospiech
Christian81 hat geschrieben:RTM: http://doc.trolltech.com/4.3/qthread.html#details
Welchen Teil davon meinst du?
QThreads begin executing in run(). To create your own threads, subclass QThread and reimplement run().
ist genau das was ich gemacht habe und oben versucht habe zu schildern.

Matthias

Verfasst: 3. März 2008 22:23
von Christian81
Nur weil es dort anfängt heisst es noch längst nicht dass Du diese Funktion aufrufen sollst. Umsonst ist sie nicht protected!
Liess bitte mal genauer anstatt einfach immer nur drüber zu fliegen... steht gleich im übernächsten Satz.