이 페이지에서

QtTaskTree Namespace

QtTaskTree 네임스페이스는 태스크트리 모듈의 모든 클래스와 전역 함수를 둘러싸고 있습니다. 더 보기...

헤더: #include <QtTaskTree>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
이후: Qt 6.11

클래스

(since 6.11) class Do
(since 6.11) class Else
(since 6.11) class ElseIf
(since 6.11) class ExecutableItem
(since 6.11) class ExecutionMode
(since 6.11) class For
(since 6.11) class Forever
(since 6.11) class ForeverIterator
(since 6.11) class Group
(since 6.11) class GroupItem
(since 6.11) class If
(since 6.11) class Iterator
(since 6.11) class ListIterator
(since 6.11) struct ObjectSignal
(since 6.11) class ParallelLimit
(since 6.11) class QBarrier
(since 6.11) class QCustomTask
(since 6.11) class QDefaultTaskAdapter
(since 6.11) class QMappedTaskTreeRunner
(since 6.11) class QNetworkReplyWrapper
(since 6.11) class QParallelTaskTreeRunner
(since 6.11) class QProcessTaskDeleter
(since 6.11) class QSequentialTaskTreeRunner
(since 6.11) class QSingleTaskTreeRunner
(since 6.11) class QStartedBarrier
(since 6.11) class QSyncTask
(since 6.11) class QTaskInterface
(since 6.11) class QTaskTree
(since 6.11) class QTcpSocketWrapper
(since 6.11) class QThreadFunction
(since 6.11) class QThreadFunctionBase
(since 6.11) class RepeatIterator
(since 6.11) class Storage
(since 6.11) class Then
(since 6.11) class UntilIterator
(since 6.11) class When

BarrierKickerGetter
flags CallDone
enum class CallDoneFlag { Never, OnSuccess, OnError, OnCancel, Always }
enum class DoneResult { Success, Error }
enum class DoneWith { Success, Error, Cancel }
GroupItems
QBarrierTask
QNetworkReplyWrapperTask
QProcessTask
QStoredBarrier
QTaskTreeTask
QTcpSocketWrapperTask
QThreadFunctionTask
QTimeoutTask
enum class SetupResult { Continue, StopWithSuccess, StopWithError }
TreeDoneHandler
TreeSetupHandler
enum class WorkflowPolicy { StopOnError, ContinueOnError, StopOnSuccess, ContinueOnSuccess, StopOnSuccessOrError, …, FinishAllAndError }

변수

const QtTaskTree::GroupItem continueOnError
const QtTaskTree::GroupItem continueOnSuccess
const QtTaskTree::ExecutableItem errorItem
const QtTaskTree::GroupItem finishAllAndError
const QtTaskTree::GroupItem finishAllAndSuccess
const QtTaskTree::GroupItem nullItem
const QtTaskTree::ExecutionMode parallel
const QtTaskTree::ExecutionMode parallelIdealThreadCountLimit
const QtTaskTree::ExecutionMode sequential
const QtTaskTree::GroupItem stopOnError
const QtTaskTree::GroupItem stopOnSuccess
const QtTaskTree::GroupItem stopOnSuccessOrError
const QtTaskTree::ExecutableItem successItem

함수

QtTaskTree::ExecutableItem barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)
QtTaskTree::ObjectSignal<std::decay_t<Signal>> makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)
QtTaskTree::GroupItem onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)
QtTaskTree::GroupItem onGroupSetup(Handler &&handler)
QtTaskTree::ExecutableItem signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)
QtTaskTree::ExecutableItem timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)
QtTaskTree::GroupItem workflowPolicy(QtTaskTree::WorkflowPolicy policy)

상세 설명

클래스

Do 클래스

For 및 When 구문과 함께 사용되는 본문 엘리먼트입니다. 더 보기...

Else 클래스

조건 표현식에 사용되는 "else" 엘리먼트입니다. 더 보기...

ElseIf 클래스

조건 표현식에 사용되는 "else if" 요소입니다. 더 보기...

ExecutableItem 클래스

실행 가능한 작업 항목의 베이스 클래스. 더 보기...

ExecutionMode 클래스

실행 모드를 설명하는 그룹 요소입니다. 더 보기...

클래스 For

for 루프 엘리먼트. More...

영원히 클래스

서브 태스크의 무한 루프. More...

ForeverIterator 클래스

For 엘리먼트 안에서 사용되는 무한 이터레이터. 더 보기...

Group 클래스

Group은 비동기 작업의 중첩된 트리를 실행하고 처리하는 방법을 설명하는 선언적 레시피를 작성하기 위한 기본 요소를 나타냅니다. 더 보기...

GroupItem 클래스

GroupItem은 Group 의 일부가 될 수 있는 기본 요소를 나타냅니다. 더 보기...

If 클래스

조건 표현식에 사용되는 "if" 요소입니다. More...

Iterator 클래스

For 요소 내에서 이터레이터로 사용될 베이스 클래스입니다. 더 보기...

ListIterator 클래스

For 엘리먼트 안에서 사용될 리스트 이터레이터입니다. 더 보기...

객체 시그널 클래스

QObject 서브클래스와 그 시그널을 설명하는 구조체. 더 보기...

ParallelLimit 클래스

사용자 정의 제한이 있는 병렬 실행 모드. More...

QBarrier 클래스

필요에 따라 완료되는 비동기 작업. 더 보기...

클래스 QCustomTask

사용자 정의 작업 항목을 선언하고 설정 및 완료 핸들러를 정의하는 데 사용되는 클래스 템플릿입니다. 더 보기...

QDefaultTaskAdapter 클래스

QCustomTask 에서 사용되는 기본 작업 어댑터를 제공하는 클래스 템플릿입니다. 더 보기...

클래스 QMappedTaskTreeRunner

지정된 키 유형을 가진 매핑된 태스크 트리 실행 컨트롤러. More...

QNetworkReplyWrapper 클래스

QNetworkReplyQNetworkAccessManager 의 래퍼. 더 보기...

QParallelTaskTreeRunner 클래스

병렬 태스크 트리 실행 컨트롤러. More...

QProcessTaskDeleter 클래스

QProcessTask 에서 사용하는 QProcess 에 대한 사용자 정의 삭제자. More...

QSequentialTaskTreeRunner 클래스

순차적 태스크 트리 실행 컨트롤러. More...

QSingleTaskTreeRunner 클래스

단일 태스크 트리 실행 컨트롤러입니다. More...

QStartedBarrier 클래스

주어진 제한으로 QBarrier 시작. 더 보기...

QSyncTask 클래스

다른 작업 사이에서 사용자 정의 핸들러를 동기적으로 실행합니다. More...

QTaskInterface 클래스

QTaskInterface는 사용자 지정 작업의 인터페이스를 조정할 때 사용되는 도우미 클래스입니다. 더 보기...

QTaskTree 클래스

QTaskTree 클래스는 선언적 방식으로 정의된 비동기 작업의 트리를 실행합니다. 더 보기...

QTcpSocketWrapper 클래스

QTcpSocket 를 둘러싼 래퍼. 더 보기...

QThreadFunction 클래스

QtConcurrent::run()을 통해 별도의 스레드에서 함수의 실행을 제어하는 클래스 템플릿. More...

QThreadFunctionBase 클래스

QThreadFunction 클래스 템플릿의 베이스 클래스. More...

RepeatIterator 클래스

For 엘리먼트 안에서 사용되는 반복 이터레이터. 더 보기...

저장소 클래스

실행 중인 작업 트리에서 사용자 정의 데이터 교환을 위한 클래스 템플릿입니다. 더 보기...

Then 클래스

조건 표현식에 사용되는 "then" 요소입니다. More...

UntilIterator 클래스

For 요소 내부에서 사용할 조건부 반복자. More...

When 클래스

배리어가 진행될 때까지 바디의 실행을 지연시키는 엘리먼트입니다. 더 보기...

유형 문서

[alias] BarrierKickerGetter

QStoredBarrier 을 받아 ExecutableItem 을 반환하는 함수의 별칭, 즉 std::function<ExecutableItem(const QStoredBarrier &)>When 생성자 안에서 사용할 별칭을 지정합니다.

열거형 클래스 QtTaskTree::CallDoneFlag
플래그 QtTaskTree::CallDone

이 열거형은 onGroupDone() 요소 또는 사용자 정의 작업의 생성자에 대한 선택적 인자입니다. 그룹 또는 태스크의 완료 핸들러를 언제 호출해야 하는지 태스크 트리에 지시합니다.

상수설명
QtTaskTree::CallDoneFlag::Never0완료 핸들러는 호출되지 않습니다.
QtTaskTree::CallDoneFlag::OnSuccess1 << 0완료 핸들러는 실행이 성공한 후, 즉 DoneWith::Success.
QtTaskTree::CallDoneFlag::OnError1 << 1완료된 핸들러는 실행 실패 후, 즉 DoneWith::Error.
QtTaskTree::CallDoneFlag::OnCancel1 << 2완료된 핸들러는 실행이 취소된 후, 즉 DoneWith::Cancel.
QtTaskTree::CallDoneFlag::AlwaysOnSuccess | OnError | OnCanceldone 핸들러는 항상 호출됩니다.

CallDone 유형은 QFlags<CallDoneFlag>에 대한 typedef입니다. CallDoneFlag 값의 OR 조합을 저장합니다.

enum class QtTaskTree::DoneResult

이 열거형은 그룹 또는 작업의 완료 핸들러 함수에서 선택적으로 반환됩니다. 완료 처리기가 값을 반환하지 않는 경우, 즉 반환 유형이 void 인 경우 최종 반환 값은 실행 중인 작업 트리에 의해 자동으로 추론되어 상위 그룹에 보고됩니다.

완료 핸들러가 DoneResult를 반환하면 핸들러 내에서 최종 반환 값을 조정할 수 있습니다.

그룹의 완료 처리기가 DoneResult를 반환하면 그룹의 워크플로 정책은 무시됩니다.

이 열거형은 TaskInterface::done() 신호 내부에서도 사용되며 작업이 성공적으로 완료되었는지 또는 오류로 완료되었는지를 나타냅니다.

상수설명
QtTaskTree::DoneResult::Success0그룹 또는 작업의 실행이 성공으로 종료됩니다.
QtTaskTree::DoneResult::Error1그룹 또는 작업의 실행이 오류와 함께 종료됩니다.

enum class QtTaskTree::DoneWith

이 열거형은 그룹 또는 작업의 완료 핸들러에 대한 선택적 인수입니다. 그룹 또는 작업이 성공 또는 오류로 완료되었는지 또는 취소되었는지를 나타냅니다.

또한 QTaskTree::done() 신호 내부의 인수로 사용되어 QTaskTree 실행의 최종 결과를 나타냅니다.

상수설명
QtTaskTree::DoneWith::Success0그룹 또는 작업의 실행이 성공적으로 종료되었습니다.
QtTaskTree::DoneWith::Error1그룹 또는 작업의 실행이 오류로 종료되었습니다.
QtTaskTree::DoneWith::Cancel2그룹 또는 작업의 실행이 취소되었습니다. 사용자가 실행 중인 작업 트리에 대해 QTaskTree::cancel()를 호출하거나 그룹의 워크플로 정책으로 인해 실행 중인 일부 하위 작업이 취소되는 경우 이런 일이 발생합니다. 그룹 또는 작업의 실행이 취소된 경우 처리기에서 DoneResult 을 반환하여 완료된 처리기의 최종 결과를 조정하는 것은 작동하지 않습니다.

[alias] QtTaskTree::GroupItems

QList<GroupItem>의 별칭을 입력합니다.

[alias] QBarrierTask

레시피 내에서 사용할 QCustomTask<QBarrier>의 별칭을 입력합니다.

[alias] QNetworkReplyWrapperTask

레시피 내에서 사용할 QCustomTask<QNetworkReplyWrapper>의 별칭을 입력합니다.

[alias] QProcessTask

레시피 내에서 사용할 QCustomTask<QProcess>의 별칭을 QProcessTaskDeleter 을 사용하여 입력합니다.

[alias] QStoredBarrier

레시피 내에서 사용할 QtTaskTree::Storage<QStartedBarrier>의 별칭을 입력합니다.

[alias] QTaskTreeTask

레시피 내에서 사용할 QCustomTask<QTaskTree>의 별칭을 입력합니다.

[alias] QTcpSocketWrapperTask

레시피 내에서 사용할 QCustomTask<QTcpSocketWrapper>의 별칭을 입력합니다.

[alias] template <typename ResultType> QThreadFunctionTask

레시피 내에서 사용할 QCustomTask<QThreadFunction<ResultType>>에 대한 별칭을 입력합니다.

[alias] QTimeoutTask

레시피 내에서 사용할 QCustomTask<std::chrono::milliseconds> 의 별칭을 입력합니다. std::chrono::milliseconds 은 시간 초과 기간을 설정하는 데 사용됩니다. 기본 시간 제한은 std::chrono::milliseconds::zero() 이며, 즉 컨트롤이 실행 중인 이벤트 루프로 돌아가는 즉시 QTimeoutTask가 완료됩니다.

사용 예시:

using namespace std::chrono;
using namespace std::chrono_literals;

const auto onSetup = [](milliseconds &timeout) { timeout = 1000ms; }
const auto onDone = [] { qDebug() << "Timed out."; }

const Group root {
    QTimeoutTask(onSetup, onDone)
};

timeoutTask()도 참조하세요 .

enum class QtTaskTree::SetupResult

이 열거형은 그룹 또는 작업의 설정 핸들러 함수에서 선택적으로 반환됩니다. 실행 중인 작업 트리에 설정 핸들러의 실행이 완료된 후 어떻게 진행할지 알려줍니다.

상수설명
QtTaskTree::SetupResult::Continue0기본값. 그룹 또는 작업의 실행이 정상적으로 계속됩니다. 그룹 또는 작업의 설정 핸들러가 무효를 반환하면 계속을 반환한 것으로 간주합니다.
QtTaskTree::SetupResult::StopWithSuccess1그룹 또는 작업의 실행이 성공하면 즉시 중지됩니다. 그룹의 설정 핸들러에서 무효를 반환하면 모든 하위 작업이 건너뛰고 그룹의 onGroupDone() 핸들러가 DoneWith::Success 과 함께 호출됩니다. 그룹은 부모에게 성공을 보고합니다. 그룹의 워크플로 정책은 무시됩니다. 작업의 설정 핸들러에서 반환되면 작업이 시작되지 않고 완료 핸들러가 호출되지 않으며 작업이 부모에게 성공을 보고합니다.
QtTaskTree::SetupResult::StopWithError2그룹 또는 작업의 실행이 오류와 함께 즉시 중지됩니다. 그룹의 설정 핸들러에서 반환되면 모든 하위 작업이 건너뛰고 그룹의 onGroupDone() 핸들러가 DoneWith::Error 과 함께 호출됩니다. 그룹이 부모에게 오류를 보고합니다. 그룹의 워크플로 정책은 무시됩니다. 작업의 설정 처리기에서 반환되면 작업이 시작되지 않고 오류 처리기가 호출되지 않으며 작업은 부모에게 오류를 보고합니다.

[alias] QtTaskTree::TreeDoneHandler

std::function<void(const QTaskTree &, QtTaskTree::DoneWith)>의 유형 별칭입니다.

TreeDoneHandler 은 태스크 트리 실행을 예약하는 태스크 트리 러너의 함수의 선택적 인자입니다. 이 함수는 태스크 트리 러너의 레시피가 실행을 완료하면 호출됩니다. QTaskTree 및 레시피의 결과에 대한 액세스는 전달된 인수를 통해 이루어집니다.

태스크 트리 러너는 std::function<void(const QTaskTree &)>, std::function<void(QtTaskTree::DoneWith)>, 또는 std::function<void(void)> 의 단축된 형태의 핸들러도 받아들입니다.

[alias] QtTaskTree::TreeSetupHandler

std::function<void(QTaskTree &)>의 별칭을 입력합니다.

TreeSetupHandler 은 태스크 트리 실행을 예약하는 태스크 트리 러너 함수의 선택적 인수입니다. 이 함수는 태스크 트리 러너가 레시피를 실행하려고 할 때 호출됩니다. QTaskTree 에 대한 액세스는 전달된 인수를 통해 이루어집니다.

태스크 트리 러너는 std::function<void(void)> 의 단축된 형식의 핸들러도 받아들입니다.

enum class QtTaskTree::WorkflowPolicy

이 열거형은 그룹의 하위 작업이 실행을 완료할 때 그룹 요소의 가능한 동작을 설명합니다. 실행 중인 그룹이 취소될 때에도 사용됩니다.

Constant설명
QtTaskTree::WorkflowPolicy::StopOnError0기본값입니다. stopOnError 글로벌 요소에 해당합니다. 하위 작업이 오류로 완료되면 그룹이 중지되고 오류로 완료됩니다. 모든 하위 작업이 성공으로 완료되면 그룹이 성공으로 완료됩니다. 그룹이 비어 있으면 그룹이 성공으로 완료됩니다.
QtTaskTree::WorkflowPolicy::ContinueOnError1continueOnError 글로벌 요소에 해당합니다. stopOnError 과 유사하지만 하위 작업이 오류로 완료되는 경우 모든 작업이 완료될 때까지 실행이 계속되고, 그룹의 다른 작업이 성공적으로 완료된 경우에도 그룹이 나중에 오류를 보고합니다. 모든 하위 작업이 성공적으로 완료되면 그룹이 성공적으로 완료됩니다. 그룹이 비어 있으면 그룹이 성공으로 완료됩니다.
QtTaskTree::WorkflowPolicy::StopOnSuccess2stopOnSuccess 글로벌 요소에 해당합니다. 하위 작업이 성공으로 완료되면 그룹이 중지되고 성공으로 완료됩니다. 모든 하위 작업이 오류로 완료되면 그룹이 오류로 완료됩니다. 그룹이 비어 있으면 오류와 함께 완료됩니다.
QtTaskTree::WorkflowPolicy::ContinueOnSuccess3continueOnSuccess 글로벌 요소에 해당합니다. stopOnSuccess 과 유사하지만 하위 작업이 성공적으로 완료된 경우 모든 작업이 완료될 때까지 실행이 계속되며, 그룹 내 다른 작업이 오류로 완료된 경우에도 그룹은 나중에 성공을 보고합니다. 모든 하위 작업이 오류로 완료되면 그룹이 오류로 완료됩니다. 그룹이 비어 있으면 오류와 함께 완료됩니다.
QtTaskTree::WorkflowPolicy::StopOnSuccessOrError4stopOnSuccessOrError 글로벌 요소에 해당합니다. 그룹은 가능한 한 많은 작업을 시작합니다. 작업이 완료되면 그룹이 중지되고 작업의 결과를 보고합니다. 병렬 모드에서만 유용합니다. 순차 모드에서는 첫 번째 작업만 시작되고 완료되면 그룹도 완료되므로 다른 작업은 항상 건너뜁니다. 그룹이 비어 있으면 오류와 함께 완료됩니다.
QtTaskTree::WorkflowPolicy::FinishAllAndSuccess5finishAllAndSuccess 글로벌 요소에 해당합니다. 그룹은 모든 작업을 실행하고 반환 결과를 무시합니다. 모든 작업이 완료되면 그룹이 성공적으로 완료됩니다. 그룹이 비어 있으면 성공으로 완료됩니다.
QtTaskTree::WorkflowPolicy::FinishAllAndError6finishAllAndError 글로벌 요소에 해당합니다. 그룹은 모든 작업을 실행하고 반환 결과를 무시합니다. 모든 작업이 완료되면 그룹은 오류와 함께 완료됩니다. 그룹이 비어 있으면 오류와 함께 완료됩니다.

하위 작업의 결과로 인해 그룹이 중지되는 경우, 즉 StopOnError, StopOnSuccess 또는 StopOnSuccessOrError 정책이 있는 경우 그룹은 실행 중인 다른 하위 작업이 있는 경우(예: 병렬 모드에서) 취소하고 아직 시작하지 않은 작업(예: 순차 모드에서 실패한 작업 뒤에 배치된 작업)을 실행을 건너뜁니다. ParallelLimit 을 사용하면 하위 작업 취소와 건너뛰기가 모두 가능합니다.

아래 표에는 다양한 워크플로 정책 간의 차이점이 요약되어 있습니다:

워크플로 정책모든 하위 작업 실행결과그룹이 비어 있을 때의 결과
StopOnError하위 작업이 오류로 완료되고 오류를 보고할 때 중지합니다.하나 이상의 하위 작업이 실패한 경우 오류, 그렇지 않으면 성공성공
ContinueOnErrorYes하나 이상의 하위 작업이 실패하면 오류가 발생하고 그렇지 않으면 성공합니다.성공
StopOnSuccess하위 작업이 성공으로 완료되면 중지하고 성공을 보고합니다.하나 이상의 하위 작업이 성공하면 성공, 그렇지 않으면 오류 발생오류
ContinueOnSuccessYes하나 이상의 하위 작업이 성공하면 성공, 그렇지 않으면 오류를 반환합니다.오류
StopOnSuccessOrError하위 작업이 완료되면 중지하고 하위 작업의 결과를 보고합니다.완료된 하위 작업의 결과에 따라 성공 또는 오류 발생오류
FinishAllAndSuccessYes성공성공
FinishAllAndErrorYes오류오류

그룹의 하위 그룹도 그룹인 경우 하위 그룹은 자체 워크플로 정책에 따라 작업을 실행합니다. 부모 그룹의 워크플로 정책으로 인해 부모 그룹이 실행 중인 자식 그룹을 중지하는 경우, 즉 부모에 대해 StopOnError, StopOnSuccess 또는 StopOnSuccessOrError 정책이 사용된 경우 위 표의 결과 열과 자식 그룹의 워크플로 정책 행에 따라 자식 그룹의 결과가 보고됩니다.

변수 문서

const QtTaskTree::GroupItem QtTaskTree::continueOnError

ContinueOnError 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::GroupItem QtTaskTree::continueOnSuccess

ContinueOnSuccess 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::ExecutableItem QtTaskTree::errorItem

비어 있고 오류가 있는 동기식 작업을 포함하는 편리한 전역 실행 요소입니다.

이는 브랜치가 오류로 끝나는 것을 나타내는 if 문에서 유용합니다:

const ExecutableItem conditionalTask = ...;

Group group {
    stopOnError,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        errorItem
    },
    nextTask
};

위의 예에서 conditionalTask 브랜치가 오류로 끝나면 Else 브랜치가 선택되며, 이 브랜치는 오류로 즉시 끝납니다. 그러면 groupstopOnError 워크플로 정책으로 인해 nextTask 이 건너뛰고 group 이 오류와 함께 완료됩니다.

successItem참조하세요 .

const QtTaskTree::GroupItem QtTaskTree::finishAllAndError

FinishAllAndError 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::GroupItem QtTaskTree::finishAllAndSuccess

FinishAllAndSuccess 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::GroupItem QtTaskTree::nullItem

옵션이 없는 항목을 나타내는 편리한 글로벌 그룹의 요소입니다.

선택적 요소가 없음을 나타내는 조건식 표현식에 유용합니다:

const ExecutableItem task = ...;
const std::optional<ExecutableItem> optionalTask = ...;

Group group {
    task,
    optionalTask ? *optionalTask : nullItem
};

const QtTaskTree::ExecutionMode QtTaskTree::parallel

병렬 실행 모드를 설명하는 편리한 글로벌 그룹의 요소입니다.

그룹의 모든 직접 하위 작업은 이전 하위 작업이 완료될 때까지 기다리지 않고 그룹이 시작된 후에 시작됩니다. 이 모드에서는 모든 하위 작업이 동시에 실행됩니다.

sequentialParallelLimit참조하세요 .

const QtTaskTree::ExecutionMode QtTaskTree::parallelIdealThreadCountLimit

동시에 실행되는 작업 수가 제한된 병렬 실행 모드를 설명하는 편리한 글로벌 그룹의 요소입니다. 제한은 호출 스레드를 제외한 이상적인 스레드 수와 같습니다.

이것은 바로 가기입니다:

ParallelLimit(qMax(QThread::idealThreadCount() - 1, 1))

parallelParallelLimit참조하세요 .

const QtTaskTree::ExecutionMode QtTaskTree::sequential

순차 실행 모드를 설명하는 편리한 글로벌 그룹 요소입니다.

그룹 요소의 기본 실행 모드입니다.

그룹에 실행 모드가 없는 경우 순차 모드로 실행됩니다. 그룹의 모든 직접 하위 작업이 연쇄적으로 시작되므로 한 작업이 완료되면 다음 작업이 시작됩니다. 이렇게 하면 이전 작업의 결과를 다음 작업이 시작되기 전에 입력으로 전달할 수 있습니다. 이 모드는 이전 작업이 완료된 후에만 다음 작업이 시작되도록 보장합니다.

parallelParallelLimit참조하세요 .

const QtTaskTree::GroupItem QtTaskTree::stopOnError

StopOnError 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

그룹 요소의 기본 워크플로 정책입니다.

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccess

StopOnSuccess 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::GroupItem QtTaskTree::stopOnSuccessOrError

StopOnSuccessOrError 워크플로 정책을 설명하는 편리한 글로벌 그룹의 요소입니다.

const QtTaskTree::ExecutableItem QtTaskTree::successItem

비어 있고 성공한 동기식 작업을 포함하는 편리한 전역 실행 요소입니다.

브랜치가 성공으로 끝나는 것을 나타내는 if 문에서 유용합니다:

const ExecutableItem conditionalTask = ...;

const Group group {
    stopOnSuccess,
    If (conditionalTask) >> Then {
        ...
    } >> Else {
        successItem
    },
    nextTask
};

위의 예에서 conditionalTask 브랜치가 오류로 완료되면 Else 브랜치가 선택되고, 이 브랜치는 즉시 성공으로 완료됩니다. 그러면 groupstopOnSuccess 워크플로 정책으로 인해 nextTask 이 건너뛰고 group 이 성공적으로 완료됩니다.

errorItem도 참조하세요 .

함수 문서

QtTaskTree::ExecutableItem QtTaskTree::barrierAwaiterTask(const QtTaskTree::QStoredBarrier &storedBarrier)

전달된 storedBarrier 이 완료되면 완료되는 대기 태스크를 반환합니다.

참고: 전달된 storedBarrier 은 반환된 태스크의 형제 항목과 동일한 레시피 또는 조상 Group 에 배치해야 하며, 그렇지 않으면 충돌이 발생할 수 있습니다.

template <typename Signal> QtTaskTree::ObjectSignal<std::decay_t<Signal>> QtTaskTree::makeObjectSignal(typename QtPrivate::FunctionPointer<Signal>::Object *object, Signal &&signal)

ExecutableItem::withCancel() 또는 ExecutableItem::withAccept() 함수에 전달된 ObjectSignalGetter 함수 안에 ObjectSignal 을 생성하는 편리한 함수입니다. objectsignal 을 전달하여 ObjectSignal 구조체의 인스턴스를 생성합니다.

ObjectSignal, ExecutableItem::withCancel() 및 ExecutableItem::withAccept()도 참조하세요 .

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupDone(Handler &&handler, QtTaskTree::CallDone callDone = CallDoneFlag::Always)

그룹 완료 핸들러를 보유한 그룹 요소를 구성합니다. 기본적으로 그룹이 완료될 때마다 handler 이 호출됩니다. 실행이 성공, 실패 또는 취소된 경우에만 처리기가 호출되도록 하려면 callDone 인수에 기본값이 아닌 값을 전달하세요. 그룹의 워크플로 정책에 따라 실행 중인 그룹이 취소될 때(예: stopOnError 요소가 사용된 경우)에도 이 핸들러가 호출될 수 있습니다.

전달된 handlerstd::function<DoneResult(DoneWith)> 유형입니다. 선택적으로 반환 DoneResult 유형 또는 인자 DoneWith 유형을 생략할 수 있습니다(즉, 반환 유형이 void)일 수 있습니다. 가능한 핸들러 유형에 대한 자세한 내용은 GroupItem::GroupDoneHandler 을 참조하세요.

handler 이 호출되면 그룹의 모든 하위 작업이 이미 완료된 상태입니다.

그룹에 저장소 요소가 포함된 경우 저장소가 소멸되기 전에 handler 이 호출되므로 handler 이 활성 저장소 데이터의 마지막 읽기를 계속 수행할 수 있습니다.

GroupItem::GroupDoneHandleronGroupSetup()도 참조하세요 .

template <typename Handler> QtTaskTree::GroupItem QtTaskTree::onGroupSetup(Handler &&handler)

그룹 설정 핸들러를 보유한 그룹의 요소를 구성합니다. 그룹이 시작될 때마다 handler 이 호출됩니다.

전달된 handlerstd::function<SetupResult()> 또는 std::function<void()> 유형 중 하나입니다. 가능한 핸들러 유형에 대한 자세한 내용은 GroupItem::GroupSetupHandler 을 참조하세요.

handler 이 호출될 때 그룹의 하위 작업 중 아직 실행 중인 작업은 없습니다.

그룹에 저장소 요소가 포함된 경우에는 저장소가 구성된 후에 handler 이 호출되므로 handler 이 이미 활성 저장소에 대한 초기 수정을 수행할 수 있습니다.

GroupItem::GroupSetupHandleronGroupDone()도 참조하세요 .

template <typename Signal> QtTaskTree::ExecutableItem QtTaskTree::signalAwaiterTask(const typename QtPrivate::FunctionPointer<Signal>::Object *sender, Signal signal)

전달된 sendersignal 을 내보낼 때 완료되는 대기 태스크를 반환합니다.

참고: 전달된 sendersignal 에 대한 연결은 반환된 작업이 생성되거나 레시피에 배치될 때가 아니라 QTaskTree 에 의해 작업이 시작될 때 설정됩니다. 전달된 sender 이 반환된 작업이 포함된 실행 중인 작업 트리보다 오래 지속되는지 확인합니다. signal 이 작업이 시작되기 전, 즉 연결이 설정되기 전에 전송된 경우 작업 시작 후 signal 이 처음 전송될 때 작업이 완료됩니다.

QtTaskTree::ExecutableItem QtTaskTree::timeoutTask(const std::chrono::milliseconds &timeout, QtTaskTree::DoneResult result = DoneResult::Error)

timeout 기간으로 QTimeoutTask 을 생성한 후 result 으로 작업을 완료합니다.

QTimeoutTask참조하세요 .

QtTaskTree::GroupItem QtTaskTree::workflowPolicy(QtTaskTree::WorkflowPolicy policy)

주어진 policy 에 대해 그룹의 workflow policy 요소를 구성합니다.

편의상 전역 엘리먼트를 대신 사용할 수 있습니다.

stopOnError, continueOnError, stopOnSuccess, continueOnSuccess, stopOnSuccessOrError, finishAllAndSuccess, finishAllAndError, WorkflowPolicy도 참조하세요 .

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.