zur Lösung Code Bezug Schließen hier berichteteWie beenden/schließen/korrekt einen Thread beendet werden, wenn der GUI-Thread in Qt
How to run a timer inside a QThread?
es nicht erwähnt wird, wenn man sigsev Fehler bei der Haupt auftreten kann (GUI) Thread ist geschlossen (mit der X-Taste zum Beispiel).
Meine Frage ist, wie soll ich umgehen (wenn sollte ich es an erster Stelle behandeln) die Beendigung des zweiten Threads für den Fall, dass der GUI-Thread beendet ist?
Falls die Daten/Ereignisse sind nicht mehr relevant, wenn die GUI Kündigung ausgestellt wurde kann ich nur
m_thread->terminate();
im Mainwindow destructor oder in der überschriebenen Closeevent() ??
Falls die Daten/Ereignisse stattdessen relevant sind?
Vermeiden Sie unbedingt das explizite Beenden von Threads im Benutzercode, insbesondere im GUI-Benutzercode, sofern dies nicht zwingend erforderlich ist. Versuche wirklich sehr, keine Apps zu entwickeln, die eine explizite Thread-Terminierung benötigen. Setzen Sie nie, niemals, irgendeine Art von 'beenden' Flag und warten Sie dann in einem GUI 'OnClose' Event-Handler, Form-Destruktor oder ähnliches, mit join() oder loop oder irgendeiner anderen Art von Warten. – ThingyWotsit
Mögliches Duplikat von [QThread beenden, wenn die GUI-Anwendung beendet wird] (http://stackoverflow.com/questions/41411746/exit-qthread-when-gui-application-exits) – m7913d
Siehe auch die Qt-Dokumentation von [QThread :: terminate] (http://doc.qt.io/qt-5/qthread.html#terminate) und [QThread] (http://doc.qt.io/qt-5/qthread.html#details) selbst. Ein klares Beispiel wird bereitgestellt. – m7913d