Ich möchte eine Bibliothek auf QTcpServer
und für die Verwendung in Programmen erstellen, die keine Ereignisschleifen in ihren main
Funktionen haben (weil die Qt Ereignisschleife blockiert und nicht genügend Zeitauflösung für die Echtzeitoperationen erforderlich).Ist es möglich, lokale Ereignisschleifen ohne Aufruf von QApplication :: exec() zu erstellen?
Ich hoffte, dies zu umgehen, indem lokale Ereignisschleifen innerhalb der Klasse erstellen, aber sie scheinen nicht zu funktionieren, wenn ich app->exec()
zuerst in der Hauptfunktion aufgerufen habe. Gibt es eine Möglichkeit, lokale Ereignisschleifen zu erstellen und Signal/Slot-Kommunikation innerhalb eines Threads zu ermöglichen, ohne eine Ereignisschleife auf Anwendungsebene zu haben?
Ich habe mir schon Is there a way to use Qt without QApplication::exec()? angesehen, aber die Antwort hilft nicht, weil es so aussieht, als ob die Lösung eine lokale Ereignisschleife hinzufügt, aber die Anwendungsschleife nicht entfernt.
spawn einen neuen Thread, der die 'QApplication :: exec()' hat und es als "Hauptthread" am Leben erhalten? –
Ich werde es versuchen. Der einzige Nachteil ist, dass selbst wenn es funktioniert, würde es wahrscheinlich verhindern, dass ich die Bibliothek in der Zukunft mit tatsächlichen Qt-Anwendungen verwenden, da Sie sicherlich nicht zwei Aufrufe von QApplication :: exec –