이 페이지에서

QtTaskTree::When Class

class QtTaskTree::When

장벽이 전진할 때까지 시체 실행을 지연시키는 요소입니다. 더 보기...

Header: #include <qbarriertask.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
이후: Qt 6.11

참고: 이 클래스의 모든 함수는 재진입됩니다.

공용 함수

When(const QtTaskTree::BarrierKickerGetter &kicker, QtTaskTree::WorkflowPolicy policy = WorkflowPolicy::StopOnError)
When(const QtTaskTree::QCustomTask<Task, Adapter, Deleter> &customTask, Signal signal, QtTaskTree::WorkflowPolicy policy = QtTaskTree::WorkflowPolicy::StopOnError)
QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)

상세 설명

언제는 관련 QStoredBarrier 이 진행되거나 QCustomTask 의 신호가 전송될 때까지 Do 본문의 실행을 지연시키는 데 사용됩니다. Do 요소와 함께 사용됩니다: When () >> Do {}.

Do참조하세요 .

멤버 함수 문서

[explicit] When::When(const QtTaskTree::BarrierKickerGetter &kicker, QtTaskTree::WorkflowPolicy policy = WorkflowPolicy::StopOnError)

지연 요소를 생성하여 ExecutableItem 을 반환하는 kickerDo 본문과 병렬로 실행되도록 합니다. Do 본문은 QStoredBarrier 으로 전달된 kicker 이 진행될 때까지 지연됩니다. kicker 에서 반환한 ExecutableItemDo 본문은 policy 을 사용하여 병렬로 실행됩니다.

예를 들어 QProcess 가 시작될 때까지 후속 작업의 실행을 지연시키려는 경우 레시피는 다음과 같이 보일 수 있습니다:

const auto kicker = [](const QStoredBarrier &barrier) {
    const auto onSetup = [barrier](QProcess &process) {
        QObject::connect(&process, &QProcess::started, barrier.activeStorage(), &QBarrier::advance);
        ... // Setup process program, arguments, environment, etc...
    };
    return QProcessTask(onSetup);
};

const Group recipe {
    When (kicker) >> Do {
        delayedTask1,
        ...
    }
};

위의 레시피가 실행되면 QTaskTree 본문이 Do 본문과 함께 QProcessTask 을 병렬로 실행합니다. Do 본문은 처음에는 보류 상태이며, 키커에게 전달된 장벽이 진행된 후에 계속 진행됩니다. 이는 QProcess 이 시작되는 즉시 발생합니다. 그 이후에는 QProcess 본문이 Do 본문과 병렬로 실행됩니다.

Do도 참조하세요 .

[explicit] template < typename Task, typename Adapter, typename Deleter, typename Signal > When::When(const QtTaskTree::QCustomTask<Task, Adapter, Deleter> &customTask, Signal signal, QtTaskTree::WorkflowPolicy policy = QtTaskTree::WorkflowPolicy::StopOnError)

지연 요소를 생성하여 customTaskTasksignalDo 본문과 병렬로 실행되도록 합니다. Do 본문은 Tasksignal 이 전송될 때까지 지연됩니다. customTaskDo 본문은 policy 을 사용하여 병렬로 실행됩니다.

다른 When 생성자의 코드는 다음과 같이 단순화할 수 있습니다:

const auto onSetup = [barrier](QProcess &process) {
    ... // Setup process program, arguments, environment, etc...
};

const Group recipe {
    When (QProcessTask(onSetup), &QProcess::started) >> Do {
        delayedTask1,
        ...
    }
};

참고: 전달된 customTaskTask 유형은 QObject 에서 파생되어야 합니다.

Do참조하세요 .

관련 비회원

QtTaskTree::Group operator>>(const QtTaskTree::When &whenItem, const QtTaskTree::Do &doItem)

whenItemdoItem 본문과 결합하여 작업 트리 레시피에 사용할 수 있는 Group 을 반환합니다.

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