Sur cette page

QtConcurrent Namespace

L'espace de noms QtConcurrent fournit des API de haut niveau qui permettent d'écrire des programmes multithreads sans utiliser de primitives de threading de bas niveau. Plus d'informations...

En-tête : #include <QtConcurrent>
CMake : find_package(Qt6 REQUIRED COMPONENTS Concurrent)
target_link_libraries(mytarget PRIVATE Qt6::Concurrent)
qmake : QT += concurrent

Classes

(since 6.0) class QTaskBuilder

Types de classes

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

Fonctions

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)

Description détaillée

Voir la documentation du Qt Concurrent pour une vue d'ensemble des fonctions disponibles, ou voir ci-dessous pour des informations détaillées sur chaque fonction.

Optimiser les inclusions

Si vous incluez l'en-tête <QtConcurrent>, l'ensemble du module Qt Concurrent et l'ensemble du module Qt Core seront inclus, ce qui peut augmenter les temps de compilation et la taille des binaires. Pour utiliser des fonctions individuelles de l'espace de noms QtConcurrent, vous pouvez inclure des en-têtes plus spécifiques.

Le tableau ci-dessous répertorie les fonctions de l'espace de noms QtConcurrent et leurs en-têtes correspondants :

FonctionEn-tête
QtConcurrent::run()<QtConcurrentRun>
QtConcurrent::task()<QtConcurrentTask>
QtConcurrent::filter(), QtConcurrent::filtered(), QtConcurrent::filteredReduced()<QtConcurrentFilter>
QtConcurrent::map(), QtConcurrent::mapped(), QtConcurrent::mappedReduced()<QtConcurrentMap>

Classes

classe QTaskBuilder

La classe QTaskBuilder est utilisée pour ajuster les paramètres des tâches. Plus d'informations...

Documentation sur les types

enum class QtConcurrent::FutureResult

Ce type d'énumération est utilisé pour invoquer une surcharge spéciale de QtConcurrent::QTaskBuilder::spawn(QtConcurrent::FutureResult) qui ne renvoie pas d'objet futur.

ConstanteValeurDescription
QtConcurrent::FutureResult::Ignore0Une balise auxiliaire introduite pour améliorer la lisibilité du code.

[alias] InvokeResultType

La définition simplifiée de ce type se présente comme suit :

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

L'implémentation réelle contient également une vérification à la compilation pour savoir si la tâche peut être invoquée avec les arguments spécifiés ou non.

enum QtConcurrent::ReduceOption
flags QtConcurrent::ReduceOptions

Cette énumération spécifie l'ordre dans lequel les résultats de la fonction map ou filter sont transmis à la fonction reduce.

ConstanteValeurDescription de l'option
QtConcurrent::UnorderedReduce0x1La réduction est effectuée dans un ordre arbitraire.
QtConcurrent::OrderedReduce0x2La réduction est effectuée dans l'ordre de la séquence originale.
QtConcurrent::SequentialReduce0x4La réduction se fait de manière séquentielle : un seul thread entrera dans la fonction de réduction à la fois. (La réduction parallèle pourrait être prise en charge dans une future version de Qt Concurrent).

Le type ReduceOptions est un typedef pour QFlags<ReduceOption>. Il stocke une combinaison OR de valeurs ReduceOption.

Documentation de la fonction

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

Appelle filterFunction une fois pour chaque élément de sequence. Si filterFunction renvoie true, l'élément est conservé dans sequence; sinon, l'élément est supprimé de sequence.

Notez que cette méthode n'a pas de surcharge fonctionnant avec des itérateurs, car elle invalide les itérateurs de la séquence sur laquelle elle opère.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, l'élément est conservé dans sequence; sinon, l'élément est supprimé de sequence.

Notez que cette méthode n'a pas de surcharge fonctionnant avec des itérateurs, car elle invalide les itérateurs de la séquence sur laquelle elle opère.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence et renvoie une nouvelle séquence d'éléments conservés. Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Sinon, l'élément n' apparaîtra pas dans la nouvelle séquence.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filtered(), Filtre simultané et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end et renvoie une nouvelle séquence d'éléments conservés. Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Sinon, l'élément n' apparaîtra pas dans la nouvelle séquence.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filtered(), Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence et renvoie une nouvelle séquence d'éléments conservés. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filtered(), Filtre simultané et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end et renvoie une nouvelle séquence d'éléments conservés. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filtered(), Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément contenu dans sequence. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de begin à end. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de sequence. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de begin à end. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de begin à end. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également filteredReduced(), Concurrent Filter et 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))

Appelle filterFunction une fois pour chaque élément de begin à end. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également filteredReduced(), Concurrent Filter et Filter-Reduce.

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

Appelle function une fois pour chaque élément contenu dans sequence. function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans sequence.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également map() et Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end. function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans la séquence à laquelle appartiennent les itérateurs.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence traitée.

Voir aussi map() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence. Tous les appels à function sont invoqués à partir des fils de discussion tirés de QThreadPool pool . function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans sequence.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir aussi map() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end. Tous les appels à function sont invoqués à partir des fils de discussion tirés de QThreadPool pool . function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans la séquence à laquelle appartiennent les itérateurs.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir aussi map() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence et renvoie une OutputSequence contenant les résultats. Le type des résultats correspondra au type renvoyé par le MapFunctor.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir aussi mapped() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end et renvoie un conteneur avec les résultats. Vous pouvez spécifier le type de conteneur en tant qu'argument de modèle, comme ceci :

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

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également mapped() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence et renvoie une OutputSequence contenant les résultats. Tous les appels à function sont invoqués à partir des fils d'exécution tirés de QThreadPool pool . Le type des résultats correspondra au type renvoyé par le MapFunctor.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également mapped() et Concurrent Map and Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end et renvoie un conteneur avec les résultats. Tous les appels à function sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Vous pouvez spécifier le type de conteneur en tant qu'argument de modèle, comme ceci :

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

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir également mapped() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de sequence. La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également mapped() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de begin à end. La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir aussi blockingMappedReduced() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de sequence. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également mapped() et Concurrent Map and 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))

La fonction appelle mapFunction une fois pour chaque élément de sequence. La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également mapped() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de begin à end. La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur du résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir aussi blockingMappedReduced() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de begin à end. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir aussi blockingMappedReduced() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de sequence. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Remarque : cette fonction se bloque jusqu'à ce que tous les éléments de la séquence aient été traités.

Voir également mapped() et Concurrent Map and 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))

Appelle mapFunction une fois pour chaque élément de begin à end. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : cette fonction se bloque jusqu'à ce que l'itérateur atteigne la fin de la séquence en cours de traitement.

Voir aussi blockingMappedReduced() et Concurrent Map and Map-Reduce.

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

Appelle filterFunction une fois pour chaque élément de sequence. Si filterFunction renvoie true, l'élément est conservé dans sequence; sinon, l'élément est supprimé de sequence.

Notez que cette méthode n'a pas de surcharge fonctionnant avec des itérateurs, car elle invalide les itérateurs de la séquence sur laquelle elle opère.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, l'élément est conservé dans sequence; sinon, l'élément est supprimé de sequence.

Notez que cette méthode n'a pas de surcharge fonctionnant avec des itérateurs, car elle invalide les itérateurs de la séquence sur laquelle elle opère.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence et renvoie une nouvelle séquence d'éléments conservés. Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end et renvoie une nouvelle séquence d'éléments conservés. Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence et renvoie une nouvelle séquence d'éléments conservés. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end et renvoie une nouvelle séquence d'éléments conservés. Tous les appels à filterFunction sont invoqués à partir des fils pris dans QThreadPool pool . Si filterFunction renvoie true, une copie de l'élément est placée dans la nouvelle séquence. Dans le cas contraire, l'élément n' apparaîtra pas dans la nouvelle séquence.

Voir aussi Filtre concurrent et Filtre-réduction.

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

Appelle filterFunction une fois pour chaque élément contenu dans sequence. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est indéfini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est indéfini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end. Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de sequence. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle filterFunction une fois pour chaque élément de begin à end. Tous les appels à filterFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . Si filterFunction renvoie true pour un élément, cet élément est alors transmis à reduceFunction. En d'autres termes, la valeur de retour est le résultat de reduceFunction pour chaque élément pour lequel filterFunction renvoie true. La valeur du résultat est initialisée à initialValue lors de l'appel de la fonction, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si filterFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé n'est pas défini si reduceOptions est QtConcurrent::UnorderedReduce. Si reduceOptions est QtConcurrent::OrderedReduce, reduceFunction est appelé dans l'ordre de la séquence originale.

Voir aussi Filtre concurrent et Filtre-Réduction.

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

Appelle function une fois pour chaque élément contenu dans sequence. function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans sequence.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end. function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans la séquence à laquelle appartiennent les itérateurs.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence. Tous les appels à function sont invoqués à partir des fils de discussion tirés de QThreadPool pool . function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans sequence.

Voir également Map et Map-Reduce simultanés.

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

Appelle function une fois pour chaque élément de begin à end. Tous les appels à function sont invoqués à partir des fils de discussion tirés de QThreadPool pool . function prend une référence à l'élément, de sorte que toute modification apportée à l'élément apparaîtra dans la séquence à laquelle appartiennent les itérateurs.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence et renvoie un futur avec chaque élément mappé comme résultat. Vous pouvez utiliser QFuture::const_iterator ou QFutureIterator pour itérer à travers les résultats.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end et renvoie un futur avec chaque élément mappé comme résultat. Vous pouvez utiliser QFuture::const_iterator ou QFutureIterator pour itérer à travers les résultats.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de sequence et renvoie un futur avec chaque élément mappé comme résultat. Tous les appels à function sont invoqués à partir des threads provenant de QThreadPool pool . Vous pouvez utiliser QFuture::const_iterator ou QFutureIterator pour itérer les résultats.

Voir aussi Concurrent Map et Map-Reduce.

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

Appelle function une fois pour chaque élément de begin à end et renvoie un futur avec chaque élément mappé comme résultat. Tous les appels à function sont invoqués à partir des threads provenant de QThreadPool pool . Vous pouvez utiliser QFuture::const_iterator ou QFutureIterator pour itérer à travers les résultats.

Voir aussi Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de sequence. La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Voir aussi Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de begin à end. La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. Par défaut, l'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : QtConcurrent::OrderedReduce aboutit à la réduction ordonnée.

Voir aussi Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de sequence. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Voir aussi Concurrent Map et 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))

La fonction appelle mapFunction une fois pour chaque élément de sequence. La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Voir également Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de begin à end. La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur du résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. Par défaut, l'ordre d'appel de reduceFunction n'est pas défini.

Remarque : QtConcurrent::OrderedReduce entraîne une réduction ordonnée.

Voir aussi Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de begin à end. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. Par défaut, l'ordre dans lequel reduceFunction est appelé n'est pas défini.

Remarque : QtConcurrent::OrderedReduce aboutit à une réduction ordonnée.

Voir aussi Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de sequence. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. L'ordre dans lequel reduceFunction est appelé est déterminé par reduceOptions.

Voir également Concurrent Map et 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))

Appelle mapFunction une fois pour chaque élément de begin à end. Tous les appels à mapFunction sont invoqués à partir des fils de discussion tirés de QThreadPool pool . La valeur de retour de chaque mapFunction est transmise à reduceFunction. La valeur de résultat est initialisée à initialValue lorsque la fonction est appelée, et le premier appel à reduceFunction opérera sur cette valeur.

Notez que si mapFunction est appelé simultanément, seul un thread à la fois appellera reduceFunction. Par défaut, l'ordre d'appel de reduceFunction n'est pas défini.

Remarque : QtConcurrent::OrderedReduce entraîne une réduction ordonnée.

Voir aussi Concurrent Map et Map-Reduce.

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

Équivalent à

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

Exécute function dans un thread séparé. Le fil de discussion est tiré du fil de discussion global QThreadPool. Notez que function peut ne pas être exécuté immédiatement ; function ne sera exécuté que lorsqu'un thread sera disponible.

En mode de base, T est du même type que la valeur de retour de function. Les valeurs de retour non vides sont accessibles via la fonction QFuture::result().

En mode de base, l'adresse QFuture renvoyée ne peut être utilisée que pour demander l'état d'exécution/fini et la valeur de retour de la fonction. En particulier, l'annulation ou la mise en pause ne peut être effectuée que si les calculs à l'origine du futur n'ont pas été lancés.

En mode run with promise, la fonction function est censée retourner void et doit prendre un argument supplémentaire de type QPromise<T> &, placé comme premier argument dans la liste des arguments de la fonction. T est le type de résultat et il est le même pour le retour QFuture<T>.

En mode run with promise, similaire au mode basic, le QFuture renvoyé peut être utilisé pour demander l'état d'exécution/fini et la valeur rapportée par la fonction. En outre, il peut être utilisé pour suspendre ou annuler la tâche en cours, récupérer plusieurs résultats de l'appel function ou surveiller la progression signalée par function.

Voir également Exécution simultanée (mode de base), Exécution simultanée avec promesse et QThreadPool::start().

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

Planifie function sur pool. Notez que function peut ne pas être exécuté immédiatement ; function ne sera exécuté que lorsqu'un thread sera disponible.

En mode de base, T est du même type que la valeur de retour de function. Les valeurs de retour non vides sont accessibles via la fonction QFuture::result().

En mode de base, l'adresse QFuture renvoyée ne peut être utilisée que pour demander l'état d'exécution/fini et la valeur de retour de la fonction. En particulier, l'annulation ou la mise en pause ne peut être effectuée que si les calculs à l'origine du futur n'ont pas été lancés.

En mode run with promise, la fonction function est censée retourner void et doit prendre un argument supplémentaire de type QPromise<T> &, placé comme premier argument dans la liste des arguments de la fonction. T est le type de résultat et il est le même pour le retour QFuture<T>.

En mode run with promise, similaire au mode basic, le QFuture renvoyé peut être utilisé pour demander l'état d'exécution/fini et la valeur rapportée par la fonction. En outre, il peut être utilisé pour suspendre ou annuler la tâche en cours, récupérer plusieurs résultats de l'appel function ou surveiller la progression signalée par function.

Voir également Exécution simultanée (mode de base), Exécution simultanée avec promesse et QThreadPool::start().

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

Crée une instance de QtConcurrent::QTaskBuilder. Cet objet peut être utilisé pour ajuster certains paramètres et exécuter task dans un thread séparé.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi Tâche concurrente et QtConcurrent::QTaskBuilder.

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