이 페이지에서

QtTaskTree::If Class

class QtTaskTree::If

조건식에서 사용되는 “if” 요소. 더 보기...

헤더: #include <qconditional.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
다음부터: Qt 6.11부터
상태: 기술 미리보기

이 클래스는 기술 미리보기 단계에 있으며 변경될 수 있습니다.

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

공개 함수

If(const QtTaskTree::ExecutableItem &condition)
If(Handler &&handler)
If(QtTaskTree::If &&other)

상세 설명

조건식에서 초기 조건 요소입니다. 반드시 그 뒤에 Then 요소가 와야 합니다.

TaskTree 모듈의 조건식(conditional expressions)을 사용하면 분기 조건과 해당 본문을 비동기 방식으로 처리할 수 있습니다. 예를 들어:

const Group recipe {
    If (conditionTask1) >> Then {
        bodyTask1
    } >> ElseIf (conditionTask2) >> Then {
        bodyTask2
    } >> Else {
        bodyTask3
    }
};

위의 레시피를 ` QTaskTree`와 함께 실행하면, 태스크 트리는 먼저 비동기적인 ` conditionTask1 `를 시작합니다. 이 작업이 완료된 후, 결과에 따라 태스크 트리는 ` conditionTask1 `가 성공적으로 완료된 경우 ` bodyTask1 `를 실행하거나, 그렇지 않은 경우 ` conditionTask2 `를 실행하여 다른 조건을 분기시킬 수 있습니다. bodyTask1 가 실행되는 경우, 다른 태스크는 실행되지 않으며, bodyTask1 의 결과가 전체 조건 표현식의 최종 결과가 됩니다.

Then, Else 및 ElseIf도 참조하십시오 .

멤버 함수 문서

[explicit] If::If(const QtTaskTree::ExecutableItem &condition)

조건식에서 사용할 ‘ condition ’ 태스크가 포함된 초기 조건 요소를 생성합니다. 실행 중인 QTaskTree 는 전달된 condition 을 먼저 실행하고, 이 작업이 완료된 후 성공 시 Then 분기를 실행하거나, 그렇지 않은 경우 선택적으로 제공된 Else 분기 또는 ElseIf 조건을 실행합니다.

전달된 condition 는 Group 요소로 둘러싸인 여러 개의 작업으로 구성될 수도 있고, 다음과 같이 이들의 합집합 또는 합집합이 아닐 수도 있습니다:

const Group subRecipe {
    parallel,
    parallelConditionTask1,
    parallelConditionTask2
};

const Group recipe {
    If (conditionTask1 && !conditionTask2) >> Then {
        bodyTask1
    } >> ElseIf (subRecipe) >> Then {
        bodyTask2
    } >> Else {
        bodyTask3
    }
};

[explicit] template <typename Handler, std::enable_if_t<!std::is_base_of_v<ExecutableItem, std::decay_t<Handler>>, bool> = true> If::If(Handler &&handler)

실행 중인 QTaskTree 가 초기 조건을 평가할 때 실행될 동기식 handler 를 받아들이는 헬퍼 생성자입니다.

다음과 같은 구문을 간소화한 것입니다:

If (QSyncTask(handler))

허용되는 핸들러 유형에 대한 자세한 내용은 QSyncTask 를 참조하십시오.

이 함수는 오버로드된 함수입니다.

QSyncTask 및 ElseIf도 참조하십시오 .

[constexpr noexcept default] If::If(QtTaskTree::If &&other)

If 의 인스턴스를 move-construct로 생성합니다.

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