Page 1 of 1

Bezüglich des Problems, dass QThread ein fertiges Signal aussendet

Posted: 03 Jan 2025, 10:44
by Guest

Code: Select all

#define DEBUG qDebug()thread->quit();
d->thread->wait();
delete d->thread;
delete d;
}
Warum nur „Thread beendet“ ausgeben, wenn ich Qt::DirectConnection spezifiziere, wenn ich Mainwindow schließe? Aber wenn es Qt::QueuedConnection ist, wird es nicht.
Für Qt::DirectConnection kann ich das verstehen, wenn der d->Thread das Finish ausgibt Signal wird der Druck sofort im untergeordneten Thread ausgeführt. Bei Qt::QueuedConnection hingegen wird dieses Objekt, das MainWindow ist, im Hauptthread gedruckt. Das Signal wird am Ende der Ereigniswarteschlange platziert und nur verarbeitet, wenn die Ereignisschleife es verarbeitet.
C++17, Qt 5.15.2, Windows 11, CPU I7 13700, RAM 16G