Seite 1 von 1

[gelöst] QObject::killTimers Multithreading

Verfasst: 30. März 2009 02:57
von cooky1976
Hallo,

ich habe ein MainWindow und daraus starte ich einen zweiten Thread mittels eine Buttons, welcher mir Daten für das MainWindow liefert. Der parallele Thread kommuniziert über Signal-Slots mit dem Hauptthread.
So ziemlich am Anfang erzeugt er eine QSplashscreen, die den User über den Fortschritt auf dem Laufenden hält.
Nachrichten werden über ein Signal printSplashMessage(QString) weitergegeben.
Das ganze habe ich dann im Hauptthread folgendermaßen konnektiert:

Code: Alles auswählen

connect(&threadHLA, SIGNAL(printSplashMessage(QString)), mainWin, SLOT(printSplashMessage(QString)), Qt::BlockingQueuedConnection);
Das BlockingQueuedConnection, damit er in dem Parallelthread erst weitergeht, wenn er die Meldung auf dem SplashScreen ausgegeben hat. Ich wollte mir hier keinen Mutex und eine WaitCondition antun.
Allerdings bekomme ich jetzt immer

Code: Alles auswählen

QObject::killTimers: timers cannot be stopped from another thread
Kann mir eventuell jemand einen Tipp geben, woher das kommt? Denn ich steige zu diesem Zeitpunkt noch nicht aus dem Programm aus, was Recherchen über Google ergaben.

Danke

Alexander

Verfasst: 30. März 2009 08:14
von pfid
Schwer zu sagen ohne Code. Hast du irgendwo was auf dem Stack angelegt?

Verfasst: 30. März 2009 13:02
von cooky1976
Die Lösung lag' in der API, die in dem Thread verwendet wurde und blockiert hat ohne etwas zu "sagen" (Logs).

Manchmal muss man einfach nur darüber schlafen