QtConcurrent Namespace
QtConcurrent 네임스페이스는 저수준 스레딩 프리미티브를 사용하지 않고도 멀티스레드 프로그램을 작성할 수 있도록 하는 고수준 API를 제공합니다. 더 보기...
Header: | #include <QtConcurrent> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Concurrent) target_link_libraries(mytarget PRIVATE Qt6::Concurrent) |
qmake: | QT += concurrent |
- QtConcurrent는 스레딩 클래스의 일부입니다.
클래스
(since 6.0) class | QTaskBuilder |
Types
enum class | FutureResult { Ignore } |
InvokeResultType | |
enum | ReduceOption { UnorderedReduce, OrderedReduce, SequentialReduce } |
flags | ReduceOptions |
함수
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) |
자세한 설명
사용 가능한 함수에 대한 개요는 Qt Concurrent 모듈 설명서를 참조하거나 각 함수에 대한 자세한 정보는 아래를 참조하세요.
유형 문서
enum class QtConcurrent::FutureResult
이 열거 형은 미래 객체를 반환하지 않는 QtConcurrent::QTaskBuilder::spawn(QtConcurrent::FutureResult)의 특수 오버로드를 호출하는 데 사용됩니다.
Constant | 값 | 설명 |
---|---|---|
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
이 열거형은 맵 또는 필터 함수의 결과가 감소 함수에 전달되는 순서를 지정합니다.
Constant | 값 | 설명 |
---|---|---|
QtConcurrent::UnorderedReduce | 0x1 | 감소는 임의의 순서로 수행됩니다. |
QtConcurrent::OrderedReduce | 0x2 | 원래 시퀀스 순서대로 축소가 수행됩니다. |
QtConcurrent::SequentialReduce | 0x4 | 감소는 순차적으로 수행되며, 한 번에 하나의 스레드만 감소 함수에 들어갑니다. (병렬 축소는 향후 Qt Concurrent 버전에서 지원될 수 있습니다.) |
ReduceOptions 유형은 QFlags<ReduceOption>에 대한 typedef입니다. ReduceOption 값의 OR 조합을 저장합니다.
함수 문서
template <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(Sequence &sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 이 true
을 반환하면 항목은 sequence 에 유지되고, 그렇지 않으면 항목은 sequence 에서 제거됩니다.
이 메서드는 작업하는 시퀀스의 이터레이터를 무효화하므로 이터레이터에 과부하가 걸리지 않는다는 점에 유의하세요.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> void QtConcurrent::blockingFilter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 true
을 반환하면 항목은 sequence 에 유지되고, 그렇지 않으면 항목은 sequence 에서 제거됩니다.
이 메서드는 작동하는 시퀀스의 이터레이터를 무효화하므로 이터레이터에 과부하가 걸리지 않는다는 점에 유의하세요.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(Sequence &&sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 새 시퀀스에 항목이 표시되지 않습니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
filtered() 및 동시 필터 및 필터-축소도참조하세요 .
template <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 새 시퀀스에 항목이 표시되지 않습니다.
참고: 이 함수는 이터레이터가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
filtered() 및 동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> std::decay_t<Sequence> QtConcurrent::blockingFiltered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 항목이 새 시퀀스에 표시되지 않습니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
filtered() 및 동시 필터 및 필터-축소도참조하세요 .
template <typename OutputSequence, typename Iterator, typename KeepFunctor> OutputSequence QtConcurrent::blockingFiltered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 항목이 새 시퀀스에 표시되지 않습니다.
참고: 이 함수는 이터레이터가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
filtered() 및 동시 필터 및 필터-축소도참조하세요 .
template <typename ResultType, typename Sequence, typename KeepFunctor, typename ReduceFunctor> ResultType QtConcurrent::blockingFilteredReduced(Sequence &&sequence, KeepFunctor &&filterFunction, ReduceFunctor &&reduceFunction, QtConcurrent::ReduceOptions reduceOptions = ReduceOptions(UnorderedReduce | SequentialReduce))
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. reduceOptions 이 QtConcurrent::OrderedReduce 인 경우 reduceFunction 이 원래 순서대로 호출됩니다.
참고: 이 함수는 처리 중인 시퀀스의 끝에 도달할 때까지 이터레이터가 차단됩니다.
filteredReduced() 및 동시 필터 및 필터-축소도참조하세요 .
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))
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 로 전달됩니다. 즉, 반환 값은 filterFunction 가 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 로 전달됩니다. 즉, 반환 값은 filterFunction 가 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 에서 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 에서 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 에서 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 에서 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. reduceOptions 이 QtConcurrent::OrderedReduce 인 경우 reduceFunction 이 원래 순서대로 호출됩니다.
참고: 이 함수는 처리 중인 시퀀스의 끝에 도달할 때까지 이터레이터가 차단됩니다.
filteredReduced() 및 동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename MapFunctor> void QtConcurrent::blockingMap(Sequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 을 한 번 호출합니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 sequence 에 표시됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
map() 및 동시 맵 및 맵-리듀스도참조하세요 .
template <typename Iterator, typename MapFunctor> void QtConcurrent::blockingMap(Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출합니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 반복자가 속한 시퀀스에 표시됩니다.
참고: 이 함수는 반복자가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
map() 및 동시 맵 및 맵-리듀스도참조하세요 .
template <typename Sequence, typename MapFunctor> void QtConcurrent::blockingMap(QThreadPool *pool, Sequence &&sequence, MapFunctor function)
sequence 의 각 항목에 대해 function 을 한 번 호출합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 sequence 에 표시됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
map() 및 동시 맵 및 맵-리듀스도참조하세요 .
template <typename Iterator, typename MapFunctor> void QtConcurrent::blockingMap(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항은 반복기가 속한 시퀀스에 표시됩니다.
참고: 이 함수는 반복자가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
map() 및 동시 맵 및 맵-리듀스도참조하세요 .
template <typename OutputSequence, typename InputSequence, typename MapFunctor> OutputSequence QtConcurrent::blockingMapped(InputSequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 를 한 번씩 호출하고 결과가 포함된 OutputSequence를 반환합니다. 결과의 유형은 맵펑터에서 반환한 유형과 일치합니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵과 맵-리듀스도참조하세요 .
template <typename Sequence, typename Iterator, typename MapFunctor> Sequence QtConcurrent::blockingMapped(Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출하고 결과가 포함된 컨테이너를 반환합니다. 다음과 같이 템플릿 인수로 컨테이너 유형을 지정할 수 있습니다:
참고: 이 함수는 반복기가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
mapped() 및 동시 맵과 맵-리듀스도참조하세요 .
template <typename OutputSequence, typename InputSequence, typename MapFunctor> OutputSequence QtConcurrent::blockingMapped(QThreadPool *pool, InputSequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 를 한 번씩 호출하고 결과를 포함하는 OutputSequence를 반환합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 결과의 유형은 MapFunctor가 반환한 유형과 일치합니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵과 맵-리듀스도참조하세요 .
template <typename Sequence, typename Iterator, typename MapFunctor> Sequence QtConcurrent::blockingMapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출하고 결과가 담긴 컨테이너를 반환합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 다음과 같이 템플릿 인수로 컨테이너 유형을 지정할 수 있습니다:
참고: 이 함수는 반복기가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: 이 함수는 처리 중인 시퀀스의 끝에 도달할 때까지 이터레이터가 차단됩니다.
blockingMappedReduced() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 에 대한 첫 번째 호출은 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목마다 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다. 함수가 호출될 때 결과값은 initialValue 으로 초기화되며, reduceFunction 을 처음 호출할 때 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: 이 함수는 처리 중인 시퀀스의 끝에 도달할 때까지 이터레이터가 차단됩니다.
blockingMappedReduced() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: 이 함수는 처리 중인 시퀀스의 끝에 도달할 때까지 이터레이터가 차단됩니다.
blockingMappedReduced() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다. 결과 값은 함수가 호출될 때 initialValue 로 초기화되며, reduceFunction 에 대한 첫 번째 호출은 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
참고: 이 함수는 시퀀스의 모든 항목이 처리될 때까지 차단됩니다.
mapped() 및 동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다. 결과 값은 함수가 호출될 때 initialValue 로 초기화되며, reduceFunction 에 대한 첫 번째 호출은 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: 이 함수는 이터레이터가 처리 중인 시퀀스의 끝에 도달할 때까지 차단됩니다.
blockingMappedReduced() 및 동시 맵 및 맵-리듀스도참조하세요 .
template <typename Sequence, typename KeepFunctor> QFuture<void> QtConcurrent::filter(Sequence &sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 이 true
을 반환하면 항목은 sequence 에 유지되고, 그렇지 않으면 항목은 sequence 에서 제거됩니다.
이 메서드는 작업하는 시퀀스의 이터레이터를 무효화하기 때문에 이터레이터에 과부하가 걸리지 않는다는 점에 유의하세요.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> QFuture<void> QtConcurrent::filter(QThreadPool *pool, Sequence &sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 true
을 반환하면 항목은 sequence 에 유지되고, 그렇지 않으면 항목은 sequence 에서 제거됩니다.
이 메서드는 작업하는 시퀀스의 이터레이터를 무효화하므로 이터레이터에 과부하가 걸리지 않는다는 점에 유의하세요.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> QFuture<typename std::decay_t<Sequence>::value_type> QtConcurrent::filtered(Sequence &&sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 새 시퀀스에 항목이 표시되지 않습니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Iterator, typename KeepFunctor> QFuture<typename qValueType<Iterator>::value_type> QtConcurrent::filtered(Iterator begin, Iterator end, KeepFunctor &&filterFunction)
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 항목이 새 시퀀스에 표시되지 않습니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename KeepFunctor> QFuture<typename std::decay_t<Sequence>::value_type> QtConcurrent::filtered(QThreadPool *pool, Sequence &&sequence, KeepFunctor &&filterFunction)
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 항목이 새 시퀀스에 표시되지 않습니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Iterator, typename KeepFunctor> QFuture<typename qValueType<Iterator>::value_type> QtConcurrent::filtered(QThreadPool *pool, Iterator begin, Iterator end, KeepFunctor &&filterFunction)
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출하고 보관된 항목의 새 시퀀스를 반환합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 이 true
을 반환하면 항목의 사본이 새 시퀀스에 저장됩니다. 그렇지 않으면 항목이 새 시퀀스에 표시되지 않습니다.
동시 필터 및 필터-축소도참조하세요 .
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))
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. reduceOptions 이 QtConcurrent::OrderedReduce 인 경우 reduceFunction 이 원래 순서대로 호출됩니다.
동시 필터 및 필터-축소도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. reduceOptions 이 QtConcurrent::OrderedReduce 인 경우 reduceFunction 이 원래 순서대로 호출됩니다.
동시 필터 및 필터-축소도참조하세요 .
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))
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 로 전달됩니다. 즉, 반환 값은 filterFunction 가 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
sequence 의 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대해 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 가 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 로 전달됩니다. 즉, 반환 값은 filterFunction 가 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
sequence 의 각 항목에 대해 filterFunction 을 한 번 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 이 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 이 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. 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))
begin 에서 end 까지 각 항목에 대해 filterFunction 을 한 번씩 호출합니다. filterFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. filterFunction 에서 항목에 대해 true
을 반환하면 해당 항목은 reduceFunction 으로 전달됩니다. 즉, 반환 값은 filterFunction 에서 true
을 반환하는 각 항목에 대한 reduceFunction 의 결과입니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 을 처음 호출하면 이 값으로 작동합니다.
filterFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceOptions 이 QtConcurrent::UnorderedReduce 인 경우 reduceFunction 이 호출되는 순서는 정의되지 않습니다. reduceOptions 이 QtConcurrent::OrderedReduce 인 경우 reduceFunction 이 원래 순서대로 호출됩니다.
동시 필터 및 필터-축소도참조하세요 .
template <typename Sequence, typename MapFunctor> QFuture<void> QtConcurrent::map(Sequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 을 한 번 호출합니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 sequence 에 표시됩니다.
동시 맵 및 맵-리듀스도참조하십시오 .
template <typename Iterator, typename MapFunctor> QFuture<void> QtConcurrent::map(Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출합니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 반복자가 속한 시퀀스에 표시됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Sequence, typename MapFunctor> QFuture<void> QtConcurrent::map(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 을 한 번 호출합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항이 sequence 에 표시됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Iterator, typename MapFunctor> QFuture<void> QtConcurrent::map(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. function 은 항목에 대한 참조를 사용하므로 항목에 대한 모든 수정 사항은 반복자가 속한 시퀀스에 나타납니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Sequence, typename MapFunctor> QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> QtConcurrent::mapped(Sequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 을 한 번씩 호출하고 매핑된 각 항목이 포함된 미래를 결과로 반환합니다. QFuture::const_iterator 또는 QFutureIterator 을 사용하여 결과를 반복할 수 있습니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Iterator, typename MapFunctor> QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> QtConcurrent::mapped(Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출하고 매핑된 각 항목이 포함된 미래를 결과로 반환합니다. QFuture::const_iterator 또는 QFutureIterator 을 사용하여 결과를 반복할 수 있습니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Sequence, typename MapFunctor> QFuture<QtPrivate::MapResultType<Sequence, MapFunctor>> QtConcurrent::mapped(QThreadPool *pool, Sequence &&sequence, MapFunctor &&function)
sequence 의 각 항목에 대해 function 을 한 번씩 호출하고 그 결과로 매핑된 각 항목이 포함된 미래를 반환합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. QFuture::const_iterator 또는 QFutureIterator 을 사용하여 결과를 반복할 수 있습니다.
동시 맵 및 맵-리듀스도참조하세요 .
template <typename Iterator, typename MapFunctor> QFuture<QtPrivate::MapResultType<Iterator, MapFunctor>> QtConcurrent::mapped(QThreadPool *pool, Iterator begin, Iterator end, MapFunctor &&function)
begin 에서 end 까지 각 항목에 대해 function 을 한 번씩 호출하고 그 결과로 매핑된 각 항목이 포함된 미래를 반환합니다. function 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. QFuture::const_iterator 또는 QFutureIterator 을 사용하여 결과를 반복할 수 있습니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
동시 맵 및 맵-리듀스도참조하십시오 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. 기본적으로 reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: QtConcurrent::OrderedReduce 은 순서대로 축소됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환값은 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))
sequence 의 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다. 함수가 호출될 때 결과 값은 initialValue 로 초기화되며, reduceFunction 에 대한 첫 번째 호출은 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목마다 mapFunction 을 한 번씩 호출합니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다. 함수가 호출될 때 결과값은 initialValue 으로 초기화되고, reduceFunction 을 처음 호출할 때 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. 기본적으로 reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: QtConcurrent::OrderedReduce 은 순서대로 감소합니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환값은 reduceFunction 으로 전달됩니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출합니다. 기본적으로 reduceFunction 이 호출되는 순서는 정의되지 않습니다.
참고: QtConcurrent::OrderedReduce 은 순서대로 축소됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
sequence 의 각 항목에 대해 mapFunction 을 한 번 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 mapFunction 의 반환 값은 reduceFunction 으로 전달됩니다. 결과 값은 함수가 호출될 때 initialValue 로 초기화되며, reduceFunction 에 대한 첫 번째 호출은 이 값으로 작동합니다.
mapFunction 이 동시에 호출되는 동안에는 한 번에 하나의 스레드만 reduceFunction 을 호출한다는 점에 유의하세요. reduceFunction 이 호출되는 순서는 reduceOptions 에 의해 결정됩니다.
동시 맵 및 맵-리듀스도참조하세요 .
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))
begin 에서 end 까지 각 항목에 대해 mapFunction 을 한 번씩 호출합니다. mapFunction 에 대한 모든 호출은 QThreadPool pool 에서 가져온 스레드에서 호출됩니다. 각 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 의 반환 값과 동일한 유형입니다. 무효가 아닌 반환 값은 QFuture::result() 함수를 통해 액세스할 수 있습니다.
기본 모드에서 반환되는 QFuture 은 함수의 실행/종료 상태와 반환값을 쿼리하는 데만 사용할 수 있습니다. 특히 취소 또는 일시 중지는 미래 계산이 시작되지 않은 경우에만 실행할 수 있습니다.
프로미스 모드에서 실행 시 function 은 무효를 반환할 것으로 예상되며, 함수의 인수 목록에서 첫 번째 인수로 QPromise<T> &
유형의 추가 인수를 받아야 합니다. T는 결과 유형이며 반환된 QFuture<T>
에 대해서도 동일합니다.
기본 모드와 마찬가지로 약속과 함께 실행 모드에서는 반환된 QFuture 을 사용하여 함수가 보고한 실행/종료 상태와 값을 쿼리할 수 있습니다. 또한 실행 중인 작업을 일시 중단하거나 취소하고, function 에서 여러 결과를 가져오거나 function 에서 보고된 진행 상황을 모니터링하는 데 사용할 수 있습니다.
동시 실행(기본 모드), 약속을 사용하여 동시 실행 및 QThreadPool::start()도 참조하세요 .
template <typename T> QFuture<T> QtConcurrent::run(QThreadPool *pool, Function function, ...)
pool 에서 function 을 예약합니다. function 은 즉시 실행되지 않을 수 있으며 function 은 스레드를 사용할 수 있게 된 후에만 실행됩니다.
기본 모드에서 T는 function 의 반환 값과 동일한 유형입니다. 무효가 아닌 반환 값은 QFuture::result() 함수를 통해 액세스할 수 있습니다.
기본 모드에서 반환되는 QFuture 은 함수의 실행/종료 상태와 반환값을 쿼리하는 데만 사용할 수 있습니다. 특히 취소 또는 일시 중지는 미래 계산이 시작되지 않은 경우에만 실행할 수 있습니다.
프로미스 모드에서 실행 시 function 은 무효를 반환할 것으로 예상되며, 함수의 인수 목록에서 첫 번째 인수로 QPromise<T> &
유형의 추가 인수를 받아야 합니다. T는 결과 유형이며 반환된 QFuture<T>
에 대해서도 동일합니다.
기본 모드와 마찬가지로 약속과 함께 실행 모드에서는 반환된 QFuture 을 사용하여 함수가 보고한 실행/종료 상태와 값을 쿼리할 수 있습니다. 또한 실행 중인 작업을 일시 중단하거나 취소하고, function 에서 여러 결과를 가져오거나 function 에서 보고된 진행 상황을 모니터링하는 데 사용할 수 있습니다.
동시 실행(기본 모드), 약속을 사용하여 동시 실행 및 QThreadPool::start()도 참조하세요 .
[since 6.0]
template <typename Task> QtConcurrent::QTaskBuilder<Task> QtConcurrent::task(Task &&task)
QtConcurrent::QTaskBuilder 의 인스턴스를 생성합니다. 이 객체를 사용하여 일부 매개변수를 조정하고 별도의 스레드에서 task 을 실행할 수 있습니다.
이 함수는 Qt 6.0에 도입되었습니다.
동시 작업과 QtConcurrent::QTaskBuilder도 참조하십시오 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.