Spec-Zone.ru › Qt 6.1

Пространство имен QtConcurrent

Пространство имен QtConcurrent предоставляет высокоуровневые API, которые позволяют писать многопоточные программы без использования низкоуровневых потоковых примитивов. Подробнее...

Заголовок: #include <QtConcurrent>
CMake: find_package(Qt6 COMPONENTS Concurrent REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Concurrent)
qmake: QT += concurrent

Классы

класс QTaskBuilder

Типы

перечисление FutureResult { Ignore }
InvokeResultType
перечисление ReduceOption { UnorderedReduce, OrderedReduce, SequentialReduce }
флаги ReduceOptions

Функции

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

Подробное описание

См. документацию модуля Qt Concurrent для обзора доступных функций или см. ниже подробную информацию о каждой функции.

Классы

класс QTaskBuilder

Класс QTaskBuilder используется для настройки параметров задачи. Подробнее...

Документация типов

перечисление QtConcurrent::FutureResult

Этот тип перечисления используется для вызова специальной перегрузки QtConcurrent::QTaskBuilder::spawn(QtConcurrent::FutureResult), которая не возвращает объект будущего.

Константа Значение Описание
QtConcurrent::FutureResult::Ignore 0 Вспомогательный тег, добавленный для повышения читаемости кода.

[alias] InvokeResultType

Упрощенное определение этого типа выглядит следующим образом:

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

Реальное же реализация также содержит проверку на этапе компиляции, может ли задача быть вызвана с указанными аргументами или нет.

перечисление QtConcurrent::ReduceOptionфлаги QtConcurrent::ReduceOptions

Это перечисление определяет порядок, в котором результаты из функции map или filter передаются функции reduce.

Константа Значение Описание
QtConcurrent::UnorderedReduce 0x1 Сведение выполняется в произвольном порядке.
QtConcurrent::OrderedReduce 0x2 Сведение выполняется в порядке исходной последовательности.
QtConcurrent::SequentialReduce 0x4 Сведение выполняется последовательно: только одна нить одновременно войдёт в функцию reduce. (Параллельное сведение может быть поддержано в будущих версиях Qt Concurrent.)

Тип ReduceOptions является typedef для QFlags<ReduceOption>. Он хранит логическое ИЛИ сочетание значений ReduceOption.

Документация функций

шаблон <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента в sequence. Все вызовы filterFunction выполняются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, элемент сохраняется в sequence; в противном случае элемент удаляется из sequence.

Обратите внимание, что у этого метода нет перегрузки, работающей с итераторами, так как это приводит к недействительности итераторов используемой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(Sequence &sequence, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента в sequence. Если filterFunction возвращает true, элемент сохраняется в sequence; в противном случае элемент удаляется из sequence.

Обратите внимание, что у этого метода нет перегрузки, работающей с итераторами, так как это приводит к недействительности итераторов используемой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента в sequence и возвращает новую последовательность сохранённых элементов. Все вызовы filterFunction выполняются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, копия элемента добавляется в новую последовательность. В противном случае элемент не будет в новой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также filtered() и Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(Sequence &&sequence, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента в sequence и возвращает новую последовательность сохранённых элементов. Если filterFunction возвращает true, копия элемента добавляется в новую последовательность. В противном случае элемент не будет в новой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также filtered() и Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента от begin до end и возвращает новую последовательность сохранённых элементов. Все вызовы filterFunction выполняются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, копия элемента добавляется в новую последовательность. В противном случае элемент не будет в новой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filtered() и Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)

Вызывает filterFunction для каждого элемента от begin до end и возвращает новую последовательность сохранённых элементов. Если filterFunction возвращает true, копия элемента добавляется в новую последовательность. В противном случае элемент не будет в новой последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filtered() и Конкурентное фильтрация и фильтрация-сведение.

шаблон <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))

Вызывает filterFunction для каждого элемента в sequence. Все вызовы filterFunction выполняются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается параллельно, только одна нить одновременно вызовет reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равно QtConcurrent::UnorderedReduce. Если reduceOptions равно QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Этот метод будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также filteredReduced() и Конкурентное фильтрация и фильтрация-сведение.

шаблон <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))

Вызывает filterFunction для каждого элемента в sequence. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается одновременно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определен, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до обработки всех элементов в последовательности.

См. также filteredReduced() и Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает filterFunction для каждого элемента в sequence. Все вызовы filterFunction вызываются из нитей, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — это результат reduceFunction для каждого элемента, где filterFunction возвращает true. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается одновременно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определен, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до обработки всех элементов в последовательности.

См. также filteredReduced() и Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает filterFunction для каждого элемента в sequence. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — это результат reduceFunction для каждого элемента, где filterFunction возвращает true. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается одновременно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определен, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до обработки всех элементов в последовательности.

См. также filteredReduced() и Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает filterFunction для каждого элемента от begin до end. Все вызовы filterFunction вызываются из нитей, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — это результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что хотя filterFunction вызывается параллельно, только одна нить в одно время будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filteredReduced() и Параллельное фильтрация и фильтрация-редукция.

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

Вызывает filterFunction для каждого элемента от begin до end. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, для которого filterFunction возвращает true.

Обратите внимание, что хотя filterFunction вызывается параллельно, только одна нить в одно время будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filteredReduced() и Параллельное фильтрация и фильтрация-редукция.

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

Вызывает filterFunction для каждого элемента от begin до end. Все вызовы filterFunction выполняются из нитей, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, для которого filterFunction возвращает true. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что хотя filterFunction вызывается параллельно, только одна нить в одно время будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filteredReduced() и Параллельное фильтрация и фильтрация-редукция.

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

Вызывает filterFunction один раз для каждого элемента от begin до end. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true. Значение результата инициализируется initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается параллельно, только одна нить за раз вызовет reduceFunction. Порядок вызовов reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

Примечание: Эта функция будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также filteredReduced() и Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает function один раз для каждого элемента в sequence. Все вызовы function вызываются из нитей, взятых из QThreadPool pool. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, появятся в sequence.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также map() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, появятся в sequence.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также map() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end. Все вызовы function вызываются из нитей, взятых из QThreadPool pool. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, появятся в последовательности, к которой относятся итераторы.

Примечание: Эта функция будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также map() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, появятся в последовательности, к которой относятся итераторы.

Примечание: Эта функция будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также map() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence и возвращает OutputSequence, содержащую результаты. Все вызовы function вызываются из нитей, взятых из QThreadPool pool. Тип результатов будет соответствовать типу, возвращаемому MapFunctor.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence и возвращает OutputSequence, содержащую результаты. Тип результатов будет соответствовать типу, возвращаемому MapFunctor.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end и возвращает контейнер с результатами. Вы можете указать тип контейнера как аргумент шаблона, например так:

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

Примечание: Эта функция будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end и возвращает контейнер с результатами. Вы можете указать тип контейнера как аргумент шаблона, например так:

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

Примечание: Эта функция будет блокироваться до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает mapFunction один раз для каждого элемента в sequence. Все вызовы mapFunction вызываются из нитей, взятых из QThreadPool pool. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только одна нить за раз вызовет reduceFunction. Порядок вызова reduceFunction определяется reduceOptions.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает mapFunction один раз для каждого элемента в sequence. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только одна нить за раз вызовет reduceFunction. Порядок вызова reduceFunction определяется reduceOptions.

Примечание: Эта функция будет блокироваться до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкурентное отображение и отображение-сведение.

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

Вызывает mapFunction один раз для каждого элемента в sequence. Все вызовы mapFunction вызываются из потоков, взятых из QThreadPool pool. Значение возврата каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, определяется параметром reduceOptions.

Примечание: Эта функция будет заблокирована до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкуррентное отображение и 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))

Вызывает mapFunction один раз для каждого элемента в sequence. Значение возврата каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, определяется параметром reduceOptions.

Примечание: Эта функция будет заблокирована до тех пор, пока все элементы в последовательности не будут обработаны.

См. также mapped() и Конкуррентное отображение и 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))

Вызывает mapFunction для каждого элемента от begin до end. Все вызовы mapFunction вызываются из потоков, взятых из QThreadPool pool. Значение возврата каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, не определён.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также blockingMappedReduced() и Конкуррентное отображение и 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))

Вызывает mapFunction для каждого элемента от begin до end. Значение возврата каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, не определён.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также blockingMappedReduced() и Конкуррентное отображение и 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))

Вызывает mapFunction для каждого элемента от begin до end. Все вызовы mapFunction вызываются из потоков, взятых из QThreadPool pool. Значение возврата каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, не определён.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также blockingMappedReduced() и Конкуррентное отображение и 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))

Вызывает mapFunction для каждого элемента от begin до end. Значение возврата каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток за раз будет вызывать reduceFunction. Порядок, в котором вызывается reduceFunction, не определён.

Примечание: Эта функция будет заблокирована до тех пор, пока итератор не достигнет конца обрабатываемой последовательности.

См. также blockingMappedReduced() и Конкуррентное отображение и Map-Reduce.

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

Вызывает filterFunction для каждого элемента в sequence. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, элемент сохраняется в sequence; в противном случае, элемент удаляется из sequence.

Обратите внимание, что этот метод не имеет перегрузки, работающей с итераторами, потому что он делает недействительными итераторы последовательности, на которой он работает.

См. также Конкуррентное фильтрация и Filter-Reduce.

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

Вызывает filterFunction для каждого элемента в sequence. Если filterFunction возвращает true, элемент сохраняется в sequence; в противном случае, элемент удаляется из sequence.

Обратите внимание, что этот метод не имеет перегрузки, работающей с итераторами, потому что он делает недействительными итераторы последовательности, на которой он работает.

См. также Конкуррентное фильтрация и Filter-Reduce.

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

Вызывает filterFunction для каждого элемента в sequence и возвращает новую последовательность сохранённых элементов. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, копия элемента помещается в новую последовательность. В противном случае, элемент не будет отображаться в новой последовательности.

См. также Конкуррентное фильтрация и Filter-Reduce.

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

Вызывает filterFunction один раз для каждого элемента в sequence и возвращает новую Последовательность сохранённых элементов. Если filterFunction возвращает true, копия элемента помещается в новую Последовательность. В противном случае элемент не будет отображаться в новой Последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента от begin до end и возвращает новую Последовательность сохранённых элементов. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true, копия элемента помещается в новую Последовательность. В противном случае элемент не будет отображаться в новой Последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента от begin до end и возвращает новую Последовательность сохранённых элементов. Если filterFunction возвращает true, копия элемента помещается в новую Последовательность. В противном случае элемент не будет отображаться в новой Последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента в sequence. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается конкурирующим образом, только один поток одновременно будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions — QtConcurrent::UnorderedReduce. Если reduceOptions — QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента в sequence. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается конкурирующим образом, только один поток одновременно будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions — QtConcurrent::UnorderedReduce. Если reduceOptions — QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента в sequence. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true. Значение результата инициализируется initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается конкурирующим образом, только один поток одновременно будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions — QtConcurrent::UnorderedReduce. Если reduceOptions — QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента в sequence. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается конкурирующим образом, только один поток одновременно будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions — QtConcurrent::UnorderedReduce. Если reduceOptions — QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

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

Вызывает filterFunction один раз для каждого элемента от begin до end. Все вызовы filterFunction вызываются из потоков, взятых из QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, где filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается конкурирующим образом, только один поток одновременно будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions — QtConcurrent::UnorderedReduce. Если reduceOptions — QtConcurrent::OrderedReduce, функция reduceFunction вызывается в порядке исходной последовательности.

См. также Конкуррентное Фильтрование и Фильтрование-Сведение.

END_OF_DOCUMENT_MARKER

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

Вызывает filterFunction один раз для каждого элемента от begin до end. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, для которого filterFunction возвращает true.

Обратите внимание, что, хотя filterFunction вызывается асинхронно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает filterFunction один раз для каждого элемента от begin до end. Все вызовы filterFunction выполняются в нитях из пула QThreadPool pool. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, для которого filterFunction возвращает true. Значение результата инициализируется initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается асинхронно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает filterFunction один раз для каждого элемента от begin до end. Если filterFunction возвращает true для элемента, этот элемент передаётся в reduceFunction. Другими словами, возвращаемое значение — результат reduceFunction для каждого элемента, для которого filterFunction возвращает true. Значение результата инициализируется initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя filterFunction вызывается асинхронно, только одна нить за раз будет вызывать reduceFunction. Порядок вызова reduceFunction не определён, если reduceOptions равен QtConcurrent::UnorderedReduce. Если reduceOptions равен QtConcurrent::OrderedReduce, reduceFunction вызывается в порядке исходной последовательности.

См. также Конкурентное фильтрация и фильтрация-сведение.

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

Вызывает function один раз для каждого элемента в sequence. Все вызовы function выполняются в нитях из пула QThreadPool pool. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, будут видны в sequence.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, будут видны в sequence.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end. Все вызовы function выполняются в нитях из пула QThreadPool pool. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, будут видны в последовательности, к которой относятся указатели.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end. Функция function принимает ссылку на элемент, поэтому любые изменения, внесённые в элемент, будут видны в последовательности, к которой относятся указатели.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence и возвращает будущую задачу с каждым отображённым элементом в качестве результата. Все вызовы function выполняются в нитях из пула QThreadPool pool. Вы можете использовать QFuture::const_iterator или QFutureIterator для итерации по результатам.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента в sequence и возвращает будущую задачу с каждым отображённым элементом в качестве результата. Вы можете использовать QFuture::const_iterator или QFutureIterator для итерации по результатам.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function один раз для каждого элемента от begin до end и возвращает будущую задачу с каждым отображённым элементом в качестве результата. Все вызовы function выполняются в нитях из пула QThreadPool pool. Вы можете использовать QFuture::const_iterator или QFutureIterator для итерации по результатам.

См. также Конкурентное отображение и отображение-сведение.

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

Вызывает function для каждого элемента от begin до end и возвращает будущее с каждым отображённым элементом в качестве результата. Можно использовать QFuture::const_iterator или QFutureIterator для итерации по результатам.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента в sequence. Все вызовы mapFunction выполняются из потоков, взятых из QThreadPool pool. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. Порядок вызовов reduceFunction определяется параметром reduceOptions.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента в sequence. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. Порядок вызовов reduceFunction определяется параметром reduceOptions.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента в sequence. Все вызовы mapFunction выполняются из потоков, взятых из QThreadPool pool. Возвращаемое значение каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. Порядок вызовов reduceFunction определяется параметром reduceOptions.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента в sequence. Возвращаемое значение каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. Порядок вызовов reduceFunction определяется параметром reduceOptions.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента от begin до end. Все вызовы mapFunction выполняются из потоков, взятых из QThreadPool pool. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. По умолчанию, порядок вызовов reduceFunction не определён.

Примечание: QtConcurrent::OrderedReduce приводит к упорядоченному сведению.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента от begin до end. Возвращаемое значение каждого mapFunction передаётся в reduceFunction.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. По умолчанию, порядок вызовов reduceFunction не определён.

Примечание: QtConcurrent::OrderedReduce приводит к упорядоченному сведению.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента от begin до end. Все вызовы mapFunction выполняются из потоков, взятых из QThreadPool pool. Возвращаемое значение каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что, хотя mapFunction вызывается параллельно, только один поток одновременно будет вызывать reduceFunction. По умолчанию, порядок вызовов reduceFunction не определён.

Примечание: QtConcurrent::OrderedReduce приводит к упорядоченному сведению.

См. также Одновременное отображение и отображение-сведение.

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

Вызывает mapFunction для каждого элемента от begin до end. Возвращаемое значение каждого mapFunction передаётся в reduceFunction. Значение результата инициализируется значением initialValue при вызове функции, и первый вызов reduceFunction будет работать с этим значением.

Обратите внимание, что хотя mapFunction вызывается одновременно, только один поток за раз будет вызывать reduceFunction. По умолчанию порядок вызова reduceFunction не определен.

Примечание: QtConcurrent::OrderedReduce приводит к упорядоченному сокращению.

См. также Одновременное отображение и отображение-сокращение.

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

Эквивалентно

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

Выполняет function в отдельном потоке. Поток берется из глобального QThreadPool. Обратите внимание, что function может не выполняться немедленно; function будет запущен только после освобождения потока.

В режиме основного режима T имеет тот же тип, что и возвращаемое значение function. Значения, отличные от void, можно получить с помощью функции QFuture::result().

В режиме основного режима возвращаемый QFuture может использоваться только для запроса о состоянии выполнения/завершения и возвращаемого значения функции. В частности, отмена или приостановка могут быть выполнены только в том случае, если вычисления, стоящие за будущим, еще не начались.

В режиме выполнения с обещанием, функция function должна возвращать void и должна принимать дополнительный аргумент типа QPromise<T> & , помещенный в качестве первого аргумента в список аргументов функции. T — это тип результата, и он такой же для возвращаемого QFuture<T>.

В режиме выполнения с обещанием, аналогично режиму основного, возвращаемый QFuture может использоваться для запроса о состоянии выполнения/завершения и значения, сообщаемого функцией. Кроме того, он может использоваться для приостановки или отмены задачи, выполнения нескольких запросов от вызываемой функции function или отслеживания прогресса, сообщаемого функцией.

См. также Одновременное выполнение (основной режим) и Одновременное выполнение с обещанием.

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

Выполняет function в отдельном потоке. Поток берется из QThreadPool pool. Обратите внимание, что function может не выполняться немедленно; function будет запущен только после освобождения потока.

В режиме основного режима T имеет тот же тип, что и возвращаемое значение function. Значения, отличные от void, можно получить с помощью функции QFuture::result().

В режиме основного режима возвращаемый QFuture может использоваться только для запроса о состоянии выполнения/завершения и возвращаемого значения функции. В частности, отмена или приостановка могут быть выполнены только в том случае, если вычисления, стоящие за будущим, еще не начались.

В режиме выполнения с обещанием, функция function должна возвращать void и должна принимать дополнительный аргумент типа QPromise<T> & , помещенный в качестве первого аргумента в список аргументов функции. T — это тип результата, и он такой же для возвращаемого QFuture<T>.

В режиме выполнения с обещанием, аналогично режиму основного, возвращаемый QFuture может использоваться для запроса о состоянии выполнения/завершения и значения, сообщаемого функцией. Кроме того, он может использоваться для приостановки или отмены задачи, выполнения нескольких запросов от вызываемой функции function или отслеживания прогресса, сообщаемого функцией.

Эта функция была добавлена в Qt 5.4.

См. также Одновременное выполнение (основной режим) и Одновременное выполнение с обещанием.

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

Создает экземпляр QtConcurrent::QTaskBuilder. Этот объект может использоваться для настройки некоторых параметров и запуска task в отдельном потоке.

Эта функция была добавлена в Qt 6.0.

См. также Одновременная задача и QtConcurrent::QTaskBuilder.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qtconcurrent.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API