QtConcurrent Namespace

Der QtConcurrent-Namensraum bietet High-Level-APIs, die es ermöglichen, Multi-Threading-Programme zu schreiben, ohne Low-Level-Threading-Primitive zu verwenden. Mehr...

Kopfzeile: #include <QtConcurrent>
CMake: find_package(Qt6 REQUIRED COMPONENTS Concurrent)
target_link_libraries(mytarget PRIVATE Qt6::Concurrent)
qmake: QT += concurrent

Klassen

(since 6.0) class QTaskBuilder

Typen

enum class FutureResult { Ignore }
InvokeResultType
enum ReduceOption { UnorderedReduce, OrderedReduce, SequentialReduce }
flags ReduceOptions

Funktionen

void blockingFilter(Sequence &sequence, KeepFunctor &&filterFunction)
void blockingFilter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)
std::decay_t<Sequence> blockingFiltered(Sequence &&sequence, KeepFunctor &&filterFunction)
OutputSequence blockingFiltered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)
std::decay_t<Sequence> blockingFiltered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)
OutputSequence blockingFiltered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)
ResultType blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingFilteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
void blockingMap(Sequence &&sequence, MapFunctor &&function)
void blockingMap(Iterator begin, Iterator end, MapFunctor &&function)
void blockingMap(QThreadPool *pool, Sequence &&sequence, MapFunctor function)
void blockingMap(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
OutputSequence blockingMapped(InputSequence &&sequence, MapFunctor &&function)
Sequence blockingMapped(Iterator begin, Iterator end, MapFunctor &&function)
OutputSequence blockingMapped(QThreadPool *pool, InputSequence &&sequence, MapFunctor &&function)
Sequence blockingMapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
ResultType blockingMappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
ResultType blockingMappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<void> filter(Sequence &sequence, KeepFunctor &&filterFunction)
QFuture<void> filter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)
QFuture<typename std::decay_t<Sequence>::value_type> filtered(Sequence &&sequence, KeepFunctor &&filterFunction)
QFuture<typename qValueType<Iterator>::value_type> filtered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)
QFuture<typename std::decay_t<Sequence>::value_type> filtered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)
QFuture<typename qValueType<Iterator>::value_type> filtered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)
QFuture<ResultType> filteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> filteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<void> map(Sequence &&sequence, MapFunctor &&function)
QFuture<void> map(Iterator begin, Iterator end, MapFunctor &&function)
QFuture<void> map(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)
QFuture<void> map(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> mapped(Sequence &&sequence, MapFunctor &&function)
QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> mapped(Iterator begin, Iterator end, MapFunctor &&function)
QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> mapped(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)
QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> mapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
QFuture<ResultType> mappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<ResultType> mappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
QFuture<T> run(Function function, ...)
QFuture<T> run(QThreadPool *pool, Function function, ...)
(since 6.0) QtConcurrent::QTaskBuilder<Task> task(Task &&task)

Detaillierte Beschreibung

Siehe die Qt Concurrent Modul-Dokumentation für einen Überblick über die verfügbaren Funktionen, oder siehe unten für detaillierte Informationen zu jeder Funktion.

Klassen

Klasse QTaskBuilder

Die Klasse QTaskBuilder wird für die Anpassung von Aufgabenparametern verwendet. Mehr...

Typ-Dokumentation

enum class QtConcurrent::FutureResult

Dieser Enum-Typ wird verwendet, um eine spezielle Überladung von QtConcurrent::QTaskBuilder::spawn(QtConcurrent::FutureResult) aufzurufen, die kein Future-Objekt zurückgibt.

KonstanteWertBeschreibung
QtConcurrent::FutureResult::Ignore0Ein Hilfs-Tag, das eingeführt wurde, um die Lesbarkeit des Codes zu verbessern.

[alias] InvokeResultType

Die vereinfachte Definition dieses Typs sieht wie folgt aus:

template <class Task, class ...Args>
using InvokeResultType = std::invoke_result_t<std::decay_t<Task>, std::decay_t<Args>...>;

Die echte Implementierung enthält auch eine Kompilierzeitprüfung, ob die Aufgabe mit den angegebenen Argumenten aufgerufen werden kann oder nicht.

enum QtConcurrent::ReduceOption
flags QtConcurrent::ReduceOptions

Diese Aufzählung legt die Reihenfolge fest, in der die Ergebnisse der Map- oder Filterfunktion an die Reduce-Funktion übergeben werden.

KonstanteWertBeschreibung
QtConcurrent::UnorderedReduce0x1Die Reduktion wird in einer beliebigen Reihenfolge durchgeführt.
QtConcurrent::OrderedReduce0x2Die Reduktion erfolgt in der Reihenfolge der ursprünglichen Sequenz.
QtConcurrent::SequentialReduce0x4Die Reduktion erfolgt sequentiell: Es wird jeweils nur ein Thread die Reduktionsfunktion aufrufen. (Parallele Reduktion könnte in einer zukünftigen Version von Qt Concurrent unterstützt werden).

Der Typ ReduceOptions ist ein Typedef für QFlags<ReduceOption>. Er speichert eine ODER-Kombination von ReduceOption-Werten.

Dokumentation der Funktion

template <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(Sequence &sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction true zurückgibt, wird das Element in sequence behalten; andernfalls wird das Element aus sequence entfernt.

Beachten Sie, dass diese Methode keine Überladung hat, die mit Iteratoren arbeitet, da sie die Iteratoren der Sequenz, auf der sie arbeitet, ungültig macht.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction true zurückgibt, wird das Element in sequence behalten; andernfalls wird das Element aus sequence entfernt.

Beachten Sie, dass diese Methode keine Überladung hat, die mit Iteratoren arbeitet, da sie die Iteratoren der Sequenz, auf der sie arbeitet, ungültig macht.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(Sequence &&sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls erscheint der Eintrag nicht in der neuen Sequenz.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch filtered() und Concurrent Filter und Filter-Reduce.

template <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element von begin bis end auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filtered() und Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool übernommen wurden. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch filtered() und Concurrent Filter und Filter-Reduce.

template <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element von begin bis end auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Alle Aufrufe von filterFunction werden von den Threads aus aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filtered() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element dann an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist nicht definiert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis alle Elemente der Sequenz verarbeitet wurden.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element dann an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction weitergegeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis alle Elemente der Sequenz verarbeitet wurden.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis alle Elemente der Sequenz verarbeitet wurden.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingFilteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingFilteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis alle Elemente der Sequenz verarbeitet wurden.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingFilteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch filteredReduced() und Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename MapFunctor> void QtConcurrent::blockingMap(Sequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen, die an dem Element vorgenommen werden, in sequence erscheinen.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet wurden.

Siehe auch map() und Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> void QtConcurrent::blockingMap(Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen, die an dem Element vorgenommen werden, in der Folge erscheinen, zu der die Iteratoren gehören.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch map() und Concurrent Map und Map-Reduce.

template <typename Sequence, typename MapFunctor> void QtConcurrent::blockingMap(QThreadPool *pool, Sequence &&sequence, MapFunctor function)

Ruft function einmal für jedes Element in sequence auf. Alle Aufrufe von function werden von den Threads der QThreadPool pool aufgerufen. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen, die an dem Element vorgenommen werden, in sequence erscheinen.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch map() und Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> void QtConcurrent::blockingMap(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf. Alle Aufrufe von function werden von den Threads aufgerufen, die von QThreadPool pool stammen. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen, die an dem Element vorgenommen werden, in der Sequenz erscheinen, zu der die Iteratoren gehören.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch map() und Concurrent Map und Map-Reduce.

template <typename OutputSequence, typename InputSequence, typename MapFunctor> OutputSequence QtConcurrent::blockingMapped(InputSequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf und gibt eine OutputSequence mit den Ergebnissen zurück. Der Typ der Ergebnisse entspricht dem Typ, der vom MapFunctor zurückgegeben wird.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename Sequence, typename Iterator, typename MapFunctor> Sequence QtConcurrent::blockingMapped(Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf und gibt einen Container mit den Ergebnissen zurück. Sie können den Typ des Containers als Schablonenargument angeben, etwa so:

QList<int> ints = QtConcurrent::blockingMapped<QList<int> >(beginIterator, endIterator, fn);

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename OutputSequence, typename InputSequence, typename MapFunctor> OutputSequence QtConcurrent::blockingMapped(QThreadPool *pool, InputSequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf und gibt eine OutputSequence zurück, die die Ergebnisse enthält. Alle Aufrufe an function werden von den Threads aus QThreadPool pool aufgerufen. Der Typ der Ergebnisse entspricht dem Typ, der vom MapFunctor zurückgegeben wird.

Hinweis: Diese Funktion blockiert, bis alle Elemente in der Sequenz verarbeitet wurden.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename Sequence, typename Iterator, typename MapFunctor> Sequence QtConcurrent::blockingMapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf und gibt einen Container mit den Ergebnissen zurück. Alle Aufrufe von function werden von den Threads aufgerufen, die von QThreadPool pool stammen. Sie können den Typ des Containers als Schablonenargument angeben, etwa so:

QList<int> ints = QtConcurrent::blockingMapped<QList<int> >(beginIterator, endIterator, fn);

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der bearbeiteten Sequenz erreicht.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingMappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingMappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der zu verarbeitenden Sequenz erreicht.

Siehe auch blockingMappedReduced() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingMappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool übernommen wurden. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingMappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Der Rückgabewert von mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingMappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Der Rückgabewert von mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion mit initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der zu verarbeitenden Sequenz erreicht.

Siehe auch blockingMappedReduced() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingMappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der zu verarbeitenden Sequenz erreicht.

Siehe auch blockingMappedReduced() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingMappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Der Rückgabewert jedes mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Hinweis: Diese Funktion blockiert so lange, bis alle Elemente in der Sequenz verarbeitet worden sind.

Siehe auch mapped() und Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> ResultType QtConcurrent::blockingMappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von mapFunction werden von den Threads aus aufgerufen, die von QThreadPool pool stammen. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert.

Hinweis: Diese Funktion blockiert, bis der Iterator das Ende der zu verarbeitenden Sequenz erreicht.

Siehe auch blockingMappedReduced() und Concurrent Map und Map-Reduce.

template <typename Sequence, typename KeepFunctor> QFuture<void> QtConcurrent::filter(Sequence &sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction true zurückgibt, wird das Element in sequence behalten; andernfalls wird das Element aus sequence entfernt.

Beachten Sie, dass diese Methode keine Überladung hat, die mit Iteratoren arbeitet, da sie die Iteratoren der Sequenz, auf der sie arbeitet, ungültig macht.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> QFuture<void> QtConcurrent::filter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction true zurückgibt, wird das Element in sequence behalten; andernfalls wird das Element aus sequence entfernt.

Beachten Sie, dass diese Methode keine Überladung hat, die mit Iteratoren arbeitet, da sie die Iteratoren der Sequenz, auf der sie arbeitet, ungültig macht.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> QFuture<typename std::decay_t<Sequence>::value_type> QtConcurrent::filtered(Sequence &&sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Iterator, typename KeepFunctor> QFuture<typename qValueType<Iterator>::value_type> QtConcurrent::filtered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element von begin bis end auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename KeepFunctor> QFuture<typename std::decay_t<Sequence>::value_type> QtConcurrent::filtered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element in sequence auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Iterator, typename KeepFunctor> QFuture<typename qValueType<Iterator>::value_type> QtConcurrent::filtered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Ruft filterFunction einmal für jedes Element von begin bis end auf und gibt eine neue Sequenz von gehaltenen Elementen zurück. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction true zurückgibt, wird eine Kopie des Eintrags in die neue Sequenz aufgenommen. Andernfalls wird das Element nicht in der neuen Sequenz erscheinen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::filteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element dann an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist nicht definiert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::filteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element dann an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Sequenz aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::filteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction weitergegeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::filteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::filteredReduced(Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten: Der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::filteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction weitergegeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist nicht definiert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::filteredReduced(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element in sequence auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions gleich QtConcurrent::UnorderedReduce ist. Wenn reduceOptions gleich QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename ResultType, typename Iterator, typename KeepFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::filteredReduced(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft filterFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von filterFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Wenn filterFunction für ein Element true zurückgibt, wird dieses Element an reduceFunction übergeben. Mit anderen Worten, der Rückgabewert ist das Ergebnis von reduceFunction für jedes Element, bei dem filterFunction true zurückgibt. Der Ergebniswert wird mit initialValue initialisiert, wenn die Funktion aufgerufen wird, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass filterFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, ist undefiniert, wenn reduceOptions QtConcurrent::UnorderedReduce ist. Wenn reduceOptions QtConcurrent::OrderedReduce ist, wird reduceFunction in der Reihenfolge der ursprünglichen Reihenfolge aufgerufen.

Siehe auch Concurrent Filter und Filter-Reduce.

template <typename Sequence, typename MapFunctor> QFuture<void> QtConcurrent::map(Sequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen, die an dem Element vorgenommen werden, in sequence erscheinen.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> QFuture<void> QtConcurrent::map(Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen an dem Element in der Reihenfolge erscheinen, zu der die Iteratoren gehören.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Sequence, typename MapFunctor> QFuture<void> QtConcurrent::map(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf. Alle Aufrufe von function werden von den Threads der QThreadPool pool aufgerufen. function nimmt einen Verweis auf das Element auf, so dass alle Änderungen an dem Element in sequence erscheinen.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> QFuture<void> QtConcurrent::map(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf. Alle Aufrufe von function werden von den Threads aufgerufen, die von QThreadPool pool stammen. function nimmt einen Verweis auf das Element auf, so dass alle am Element vorgenommenen Änderungen in der Sequenz erscheinen, zu der die Iteratoren gehören.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Sequence, typename MapFunctor> QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> QtConcurrent::mapped(Sequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf und gibt einen future mit jedem zugeordneten Element als Ergebnis zurück. Sie können QFuture::const_iterator oder QFutureIterator verwenden, um durch die Ergebnisse zu iterieren.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> QtConcurrent::mapped(Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf und gibt einen future mit jedem zugeordneten Element als Ergebnis zurück. Sie können QFuture::const_iterator oder QFutureIterator verwenden, um durch die Ergebnisse zu iterieren.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Sequence, typename MapFunctor> QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> QtConcurrent::mapped(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)

Ruft function einmal für jedes Element in sequence auf und gibt ein Future mit jedem zugeordneten Element als Ergebnis zurück. Alle Aufrufe von function werden von den Threads aufgerufen, die von QThreadPool pool stammen. Sie können QFuture::const_iterator oder QFutureIterator verwenden, um durch die Ergebnisse zu iterieren.

Siehe auch Concurrent Map und Map-Reduce.

template <typename Iterator, typename MapFunctor> QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> QtConcurrent::mapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)

Ruft function einmal für jedes Element von begin bis end auf und gibt einen Future mit jedem zugeordneten Element als Ergebnis zurück. Alle Aufrufe von function werden von den Threads aufgerufen, die von QThreadPool pool stammen. Sie können QFuture::const_iterator oder QFutureIterator verwenden, um durch die Ergebnisse zu iterieren.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::mappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::mappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Standardmäßig ist die Reihenfolge, in der reduceFunction aufgerufen wird, undefiniert.

Hinweis: QtConcurrent::OrderedReduce führt zu einer geordneten Reduktion.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::mappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool übernommen wurden. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur jeweils ein Thread reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::mappedReduced(Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Der Rückgabewert von mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::mappedReduced(Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Der Rückgabewert von mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion mit initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber jeweils nur ein Thread reduceFunction aufrufen kann. Standardmäßig ist die Reihenfolge, in der reduceFunction aufgerufen wird, undefiniert.

Hinweis: QtConcurrent::OrderedReduce führt zu einer geordneten Reduktion.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor> QFuture<ResultType> QtConcurrent::mappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool stammen. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Standardmäßig ist die Reihenfolge, in der reduceFunction aufgerufen wird, undefiniert.

Hinweis: QtConcurrent::OrderedReduce führt zu einer geordneten Reduktion.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Sequence, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::mappedReduced(QThreadPool *pool, Sequence &&sequence, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element in sequence auf. Alle Aufrufe von mapFunction werden von den Threads aufgerufen, die von QThreadPool pool übernommen wurden. Der Rückgabewert jedes mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Die Reihenfolge, in der reduceFunction aufgerufen wird, wird durch reduceOptions bestimmt.

Siehe auch Concurrent Map und Map-Reduce.

template <typename ResultType, typename Iterator, typename MapFunctor, typename ReduceFunctor, typename InitialValueType> QFuture<ResultType> QtConcurrent::mappedReduced(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&mapFunction, ReduceFunctor &&reduceFunction, InitialValueType &&initialValue, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Ruft mapFunction einmal für jedes Element von begin bis end auf. Alle Aufrufe von mapFunction werden von den Threads aus aufgerufen, die von QThreadPool pool stammen. Der Rückgabewert von jedem mapFunction wird an reduceFunction übergeben. Der Ergebniswert wird beim Aufruf der Funktion auf initialValue initialisiert, und der erste Aufruf von reduceFunction wird mit diesem Wert arbeiten.

Beachten Sie, dass mapFunction zwar gleichzeitig aufgerufen wird, aber nur ein Thread gleichzeitig reduceFunction aufruft. Standardmäßig ist die Reihenfolge, in der reduceFunction aufgerufen wird, undefiniert.

Hinweis: QtConcurrent::OrderedReduce führt zu einer geordneten Reduktion.

Siehe auch Concurrent Map und Map-Reduce.

template <typename T> QFuture<T> QtConcurrent::run(Function function, ...)

Äquivalent zu

QtConcurrent::run(QThreadPool::globalInstance(), function, ...);

Führt function in einem separaten Thread aus. Der Thread wird vom globalen QThreadPool übernommen. Beachten Sie, dass function nicht sofort ausgeführt werden darf; function wird erst ausgeführt, wenn ein Thread verfügbar wird.

Im Basismodus ist T derselbe Typ wie der Rückgabewert von function. Auf nicht-leere Rückgabewerte kann über die Funktion QFuture::result() zugegriffen werden.

Im Basismodus kann die zurückgegebene QFuture nur zur Abfrage des laufenden/beendeten Status und des Rückgabewerts der Funktion verwendet werden. Insbesondere kann ein Abbruch oder eine Pause nur dann ausgegeben werden, wenn die Berechnungen hinter dem Future noch nicht gestartet wurden.

Im Modus "run with promise" wird von function erwartet, dass es void zurückgibt, und es muss ein zusätzliches Argument vom Typ QPromise<T> & als erstes Argument in die Argumentliste der Funktion aufgenommen werden. T ist der Ergebnistyp, der auch für das zurückgegebene QFuture<T> gilt.

Im Modus "run with promise", der dem Basismodus ähnelt, kann die zurückgegebene QFuture verwendet werden, um den Status "running/finished" und den von der Funktion gemeldeten Wert abzufragen. Darüber hinaus kann sie dazu verwendet werden, die laufende Aufgabe anzuhalten oder abzubrechen, mehrere Ergebnisse von der aufgerufenen function abzurufen oder den von der function gemeldeten Fortschritt zu überwachen.

Siehe auch Concurrent Run (Grundmodus), Concurrent Run With Promise und QThreadPool::start().

template <typename T> QFuture<T> QtConcurrent::run(QThreadPool *pool, Function function, ...)

Planen Sie function auf pool. Beachten Sie, dass function nicht sofort ausgeführt werden darf; function wird erst ausgeführt, wenn ein Thread verfügbar wird.

Im Basismodus ist T vom gleichen Typ wie der Rückgabewert von function. Auf nicht leere Rückgabewerte kann über die Funktion QFuture::result() zugegriffen werden.

Im Basismodus kann die zurückgegebene QFuture nur dazu verwendet werden, den Status "läuft/beendet" und den Rückgabewert der Funktion abzufragen. Insbesondere kann ein Abbruch oder eine Pause nur dann ausgegeben werden, wenn die Berechnungen hinter dem Future noch nicht gestartet wurden.

Im Modus "run with promise" wird von function erwartet, dass es void zurückgibt und ein zusätzliches Argument vom Typ QPromise<T> & entgegennimmt, das als erstes Argument in der Argumentliste der Funktion steht. T ist der Ergebnistyp, der auch für das zurückgegebene QFuture<T> gilt.

Im Modus "run with promise", der dem Basismodus ähnelt, kann die zurückgegebene QFuture verwendet werden, um den Status "running/finished" und den von der Funktion gemeldeten Wert abzufragen. Darüber hinaus kann sie dazu verwendet werden, die laufende Aufgabe anzuhalten oder abzubrechen, mehrere Ergebnisse von der aufgerufenen function abzurufen oder den von der function gemeldeten Fortschritt zu überwachen.

Siehe auch Concurrent Run (Grundmodus), Concurrent Run With Promise und QThreadPool::start().

[since 6.0] template <typename Task> QtConcurrent::QTaskBuilder<Task> QtConcurrent::task(Task &&task)

Erzeugt eine Instanz von QtConcurrent::QTaskBuilder. Dieses Objekt kann verwendet werden, um einige Parameter anzupassen und task in einem separaten Thread auszuführen.

Diese Funktion wurde in Qt 6.0 eingeführt.

Siehe auch Concurrent Task und QtConcurrent::QTaskBuilder.

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