2 Stimmen

Wie kann ich mit Qt mehrere Threads in einer Warteschlange erstellen?

Wie kann ich mit Qt Threads in einer Warteschlange erstellen, die schrittweise ausgeführt werden (wenn ein Thread abgeschlossen ist, wird ein anderer Thread gestartet)?

Bitte geben Sie mir ein Code-Beispiel?

2voto

Janick Bernet Punkte 19324

Schau dir QThreadPool an.

Wenn du jedoch, wie Frank bemerkt hat, Dinge nacheinander ausführst, benötigst du keine Threads.

1voto

Gus L. Punkte 111

Es gibt ein "finished()" Signal vom QThread Objekt. In Ihrem Thread-Manager-Thread (d.h. Ihrem Haupt-QWidget oder QMainWindow) könnten Sie eine Queue-Manager-Klasse haben, die über einen Slot verfügt, mit dem dieses Signal verbunden ist. Der Slot würde den nächsten Thread in der Warteschlange initialisieren und ausführen, wenn er das finished-Signal vom aktuell laufenden Thread empfängt.

Dies würde ein Blockieren in Ihrem Manager-Thread verhindern und es Ihnen ermöglichen, diese Thread-Objekte aus einer Warteschlange auszuführen, wie Sie es beschreiben.

Stellen Sie sicher, dass Sie jedes Mal, wenn Sie auf ein finished-Signal reagieren, das finished-Signal des nächsten Threads mit Ihrem Queue-Manager-Slot verbinden. Sie möchten auch sicherstellen, dass Sie den Thread in Ihrer "Zur Warteschlange hinzufügen" Methode starten, wenn keine anderen Threads gerade ausgeführt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X