Frage

Ich habe eine Klasse, die ein Verfahren aufweist, das von dem Haupt-Thread und 3 anderen Threads aufgerufen wird (2 und QThreads 1 hergestellt mit QtConcurrent :: run ()). Innerhalb dieser Methode emittieren ich manchmal ein Signal. Ist das in Ordnung oder es könnte zu Problemen führen, da ich nicht Signale aussenden, die den Aufruf Fäden gehören.

War es hilfreich?

Lösung

Ja, das ist völlig in Ordnung. QT hat die Inter-Thread-Kommunikation für Sie transparent. Wenn der Schlitz, dass Bedürfnisse Feuer in einem anderen Thread dann wird das Signal Warteschlange eingereiht und werden durch den Ziel-Thread empfangen werden, wenn es seine Ereignisschleife eintritt.

Sie können es versuchen und sehen, was in einem Debugger geschieht.

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