Frage

Ich habe eine QThread Klasse abgeleitet, dass kommuniziert mit dem Haupt-Thread von QEvents um es zu senden.

Was ist der beste Weg für den Haupt-Thread mit dem zweiten Thread zu kommunizieren?

Der Haupt-Thread hat einen Zeiger auf den zweiten.

War es hilfreich?

Lösung

Der beste Weg zwischen Objekten in Qt zu kommunizieren ist, Signale und Slots zu verwenden. Es ist eine Thread-sichere Art und Weise, die von der Ereignisschleife behandelt und erfordert keine Verriegelung auf Ihrer Seite. Sie können auch Ereignisse verwenden, obwohl, dass die Verwendung ein wenig seltsam scheint -. Ein Ereignis eine Benachrichtigung von etwas passiert ist, nicht ein Werkzeug zum Chatten

Sie können auch Primitiven wie QMutex, QSemaphore, QWaitCondition und QReadWriteLock verwenden Threading (gleiche wie ein QMutex, aber wie es der Name schon sagt, können Sie Sperre entweder zum Lesen oder Schreiben, nicht beide gleichzeitig).

Sie sollten die Qt-Dokumentation lesen, speziell empfehle ich Sie mit der Thread-Unterstützung in Qt starten Seite.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top