QFutureSynchronizer Class
template <typename T> class QFutureSynchronizerDie Klasse QFutureSynchronizer ist eine Komfortklasse, die die QFuture Synchronisierung vereinfacht. Mehr...
Kopfzeile: | #include <QFutureSynchronizer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QFutureSynchronizer ist Teil der Threading-Klassen.
Öffentliche Funktionen
QFutureSynchronizer() | |
QFutureSynchronizer(QFuture<T> future) | |
~QFutureSynchronizer() | |
void | addFuture(QFuture<T> future) |
bool | cancelOnWait() const |
void | clearFutures() |
QList<QFuture<T>> | futures() const |
void | setCancelOnWait(bool enabled) |
void | setFuture(QFuture<T> future) |
void | waitForFinished() |
Detaillierte Beschreibung
QFutureSynchronizer ist eine Template-Klasse, die die Synchronisation von einem oder mehreren QFuture Objekten vereinfacht. Futures werden mit den Funktionen addFuture() oder setFuture() hinzugefügt. Die Funktion futures() gibt eine Liste von Futures zurück. Verwenden Sie clearFutures(), um alle Futures aus dem QFutureSynchronizer zu entfernen.
Die Funktion waitForFinished() wartet, bis alle Futures beendet sind. Der Destruktor von QFutureSynchronizer ruft waitForFinished() auf und bietet damit eine einfache Möglichkeit, um sicherzustellen, dass alle Futures beendet sind, bevor eine Funktion zurückkehrt:
void someFunction() { QFutureSynchronizer<void> synchronizer; ... synchronizer.addFuture(QtConcurrent::run(anotherFunction)); synchronizer.addFuture(QtConcurrent::map(list, mapFunction)); return; // QFutureSynchronizer waits for all futures to finish }
Das Verhalten von waitForFinished() kann mit der Funktion setCancelOnWait() geändert werden. Der Aufruf von setCancelOnWait(true) veranlasst waitForFinished(), alle Futures abzubrechen, bevor sie beendet werden. Sie können den Status der Cancel-on-Wait-Funktion mit der Funktion cancelOnWait() abfragen.
Siehe auch QFuture, QFutureWatcher, und Qt Concurrent.
Dokumentation der Mitgliedsfunktionen
QFutureSynchronizer::QFutureSynchronizer()
Konstruiert einen QFutureSynchronizer.
[explicit]
QFutureSynchronizer::QFutureSynchronizer(QFuture<T> future)
Konstruiert einen QFutureSynchronizer und beginnt mit der Überwachung von future durch Aufruf von addFuture().
Siehe auch addFuture().
QFutureSynchronizer::~QFutureSynchronizer()
Ruft die Funktion waitForFinished() auf, um sicherzustellen, dass alle Futures beendet sind, bevor diese QFutureSynchronizer zerstört wird.
Siehe auch waitForFinished().
void QFutureSynchronizer::addFuture(QFuture<T> future)
Fügt future in die Liste der verwalteten Futures ein.
Siehe auch futures().
bool QFutureSynchronizer::cancelOnWait() const
Gibt true
zurück, wenn die Funktion cancel-on-wait aktiviert ist; andernfalls wird false zurückgegeben. Wenn cancel-on-wait aktiviert ist, bricht die Funktion waitForFinished() alle Futures ab, bevor sie auf ihre Beendigung wartet.
Siehe auch setCancelOnWait() und waitForFinished().
void QFutureSynchronizer::clearFutures()
Entfernt alle verwalteten Futures aus dieser QFutureSynchronizer.
Siehe auch addFuture() und setFuture().
QList<QFuture<T>> QFutureSynchronizer::futures() const
Liefert eine Liste aller verwalteten Futures.
Siehe auch addFuture() und setFuture().
void QFutureSynchronizer::setCancelOnWait(bool enabled)
Aktiviert oder deaktiviert die Funktion "Abbrechen beim Warten" basierend auf dem Argument enabled. Wenn enabled wahr ist, bricht die Funktion waitForFinished() alle Futures ab, bevor sie auf ihr Ende wartet.
Siehe auch cancelOnWait() und waitForFinished().
void QFutureSynchronizer::setFuture(QFuture<T> future)
Legt fest, dass future der einzige von diesem QFutureSynchronizer verwaltete Future ist. Dies ist eine Komfortfunktion, die waitForFinished() aufruft, dann clearFutures(), und schließlich future an addFuture() übergibt.
Siehe auch addFuture(), waitForFinished(), und clearFutures().
void QFutureSynchronizer::waitForFinished()
Wartet auf die Beendigung aller Futures. Wenn cancelOnWait() true
zurückgibt, werden alle Futures abgebrochen, bevor auf ihre Beendigung gewartet wird.
Siehe auch cancelOnWait() und setCancelOnWait().
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.