ich habe folgendes Problem und bin auf die Hilfe von Experten angewiesen:
in meinem Main-File starte ich das GUI:
Code: Alles auswählen
QApplication app(argc, argv);
GUI = new myGUI();
GUI->show();
app.exec();
Thread1:
Code: Alles auswählen
GUI_ptr->writeToLog("Thread 1");
Code: Alles auswählen
GUI_ptr->writeToLog("Thread 2");
Code: Alles auswählen
void myGUI::writeToLog(QString line) {
write_log_mutex.lock();
QTime c_time = QTime::currentTime();
ui.log->insertPlainText("[" + c_time.toString("hh:mm:ss") + "] " + line);
write_log_mutex.unlock();
return;
}
Und nun das Problem: Das Programm startet und alle writeToLog() Aufrufe, die vor GUI->show() (in main) ausgeführt werden, werden auch angezeigt. Alles was danach passiert wird im GUI nicht mehr angezeigt und das Programm stürzt meistens unerwartet ab. Diese Abstürze werden durch den Aufruf writeToLog() verursacht (da das Programm nicht abstürzt wenn ich die Zeile ui.log->insertPlainText(...) auskommentiere) als ob der Mutex nicht funktionieren würde...
Ich hoffe mir kann irgendeiner weiterhelfen.
Besten Dank,
finalcu