Auf dieser Seite

QFutureSynchronizer Class

template <typename T> class QFutureSynchronizer

Die Klasse „QFutureSynchronizer“ ist eine Hilfsklasse, die die Synchronisation von „ QFuture “ vereinfacht. Mehr...

Header: #include <QFutureSynchronizer>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Ö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()

Ausführliche Beschreibung

QFutureSynchronizer ist eine Template-Klasse, bei der der Template-Parameter „ T “ den Ergebnistyp der zu synchronisierenden „ QFuture “-Objekte angibt. QFutureSynchronizer vereinfacht die Synchronisation eines oder mehrerer „ QFuture “-Objekte. Futures werden mithilfe der 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 abgeschlossen sind. Der Destruktor von `QFutureSynchronizer` ruft ` waitForFinished()` auf und bietet so eine einfache Möglichkeit, sicherzustellen, dass alle Futures abgeschlossen sind, bevor aus einer Funktion zurückgekehrt wird:

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 mithilfe der Funktion ` setCancelOnWait()` geändert werden. Der Aufruf von ` setCancelOnWait(true)` bewirkt, dass ` waitForFinished()` alle Futures abbricht, bevor auf deren Beendigung gewartet wird. Den Status der Funktion „Cancel-on-Wait“ können Sie mit der Funktion ` cancelOnWait()` abfragen.

Siehe auch „ QFuture “, „ QFutureWatcher “ und Qt Concurrent.

Dokumentation zu Mitgliedsfunktionen

QFutureSynchronizer::QFutureSynchronizer()

Erstellt einen QFutureSynchronizer.

[explicit] QFutureSynchronizer::QFutureSynchronizer(QFuture<T> future)

Erstellt 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 abgeschlossen sind, bevor dieses „ QFutureSynchronizer “ zerstört wird.

Siehe auch waitForFinished().

void QFutureSynchronizer::addFuture(QFuture<T> future)

Fügt „ future “ zur Liste der Managed Futures hinzu.

Siehe auch „ futures“ ().

bool QFutureSynchronizer::cancelOnWait() const

Gibt „ true “ zurück, wenn die Funktion „cancel-on-wait“ aktiviert ist; andernfalls wird „false“ zurückgegeben. Ist „cancel-on-wait“ aktiviert, bricht die Funktion „ waitForFinished()“ alle Futures ab, bevor auf deren Abschluss gewartet wird.

Siehe auch „ setCancelOnWait()“ und „ waitForFinished()“.

void QFutureSynchronizer::clearFutures()

Entfernt alle Managed Futures aus diesem QFutureSynchronizer.

Siehe auch addFuture() und setFuture().

QList<QFuture<T>> QFutureSynchronizer::futures() const

Gibt eine Liste aller Managed Futures zurück.

Siehe auch „ addFuture “ () und „ setFuture “ ().

void QFutureSynchronizer::setCancelOnWait(bool enabled)

Aktiviert oder deaktiviert die Funktion „cancel-on-wait“ basierend auf dem Argument „ enabled “. Wenn „ enabled “ auf „true“ gesetzt ist, bricht die Funktion „ waitForFinished()“ alle Futures ab, bevor auf deren Abschluss gewartet wird.

Siehe auch „ cancelOnWait()“ und „ waitForFinished()“.

void QFutureSynchronizer::setFuture(QFuture<T> future)

Legt „ future “ als das einzige Future fest, das von diesem „ QFutureSynchronizer “ verwaltet wird. Dies ist eine Komfortfunktion, die nacheinander „ waitForFinished()“, „ clearFutures()“ und schließlich „ future “ an „ addFuture()“ übergibt.

Siehe auch addFuture(), waitForFinished() und clearFutures().

void QFutureSynchronizer::waitForFinished()

Wartet, bis alle Futures abgeschlossen sind. Wenn „ cancelOnWait()“ den Wert „ true “ zurückgibt, wird jeder Future abgebrochen, bevor auf dessen Abschluss gewartet wird.

Siehe auch „ cancelOnWait()“ und „ setCancelOnWait()“.

© 2026 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.