이 페이지에서

QtTaskTree::Group Class

class QtTaskTree::Group

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

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

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

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

공개 함수

Group(const QtTaskTree::GroupItems &children)
Group(std::initializer_list<QtTaskTree::GroupItem> children)

상세 설명

Group은 다른 그룹 항목을 담는 컨테이너입니다. 자식 태스크를 하나의 단위로 묶어, 그룹의 부모가 이를 단일 비동기 태스크로 인식하도록 합니다. Group은 GroupItem 유형이므로 Group의 자식이 될 수도 있습니다.

QThreadFunctionTask<ResultType> 또는 QNetworkReplyWrapperTask 과 같은 별칭이 지정된 사용자 정의 작업 이름을 사용하여 자식 작업을 그룹에 삽입할 수 있습니다.

const Group group {
    QNetworkReplyWrapperTask(...),
    QThreadFunctionTask<int>(...)
};

ExecutionMode 또는 WorkflowPolicy 항목을 삽입하여 그룹의 동작을 사용자 정의할 수 있습니다:

const Group group {
    parallel,
    continueOnError,
    QNetworkReplyWrapperTask(...),
    QNetworkReplyWrapperTask(...)
};

그룹에는 중첩된 그룹이 포함될 수 있습니다:

const Group group {
    finishAllAndSuccess,
    QNetworkReplyWrapperTask(...),
    Group {
        QNetworkReplyWrapperTask(...),
        Group {
            parallel,
            QNetworkReplyWrapperTask(...),
            QNetworkReplyWrapperTask(...),
        }
        QThreadFunctionTask<QString>(...)
    }
};

그룹은 사용자 정의 저장 구조를 동적으로 인스턴스화할 수 있으며, 이는 태스크 간 데이터 교환에 사용될 수 있습니다:

struct MyCustomStruct { QByteArray data; };

Storage<MyCustomStruct> storage;

const auto onFirstSetup = [](QNetworkReplyWrapper &task) { ... };
const auto onFirstDone = [storage](const QNetworkReplyWrapper &task) {
    // storage-> gives a pointer to MyCustomStruct instance,
    // created dynamically by the running task tree.
    storage->data = task.reply()->readAll();
};
const auto onSecondSetup = [storage](QThreadFunction<QImage> &task) {
    // storage-> gives a pointer to MyCustomStruct. Since the group is sequential,
    // the stored MyCustomStruct was already updated inside the onFirstDone handler.
    const QByteArray storedData = storage->data;
};

const Group group {
    // When the group is entered by a running task tree, it creates MyCustomStruct
    // instance dynamically. It is later accessible from all handlers via
    // the *storage or storage-> operators.
    sequential,
    storage,
    QNetworkReplyWrapperTask(onFirstSetup, onFirstDone, CallDoneFlag::OnSuccess),
    QThreadFunctionTask<QImage>(onSecondSetup)
};

멤버 함수 설명서

Group::Group(const QtTaskTree::GroupItems &children)

주어진 ` children` 목록을 사용하여 그룹을 생성합니다.

이 생성자는 그룹의 자식 항목이 컴파일 시점에는 알 수 없지만, 이후 런타임 시점에 결정되는 경우에 유용합니다:

const QStringList sourceList = ...;

GroupItems groupItems { parallel };

for (const QString &source : sourceList) {
    const QNetworkReplyWrapperTask task(...); // use source for setup handler
    groupItems << task;
}

const Group group(groupItems);

Group::Group(std::initializer_list<QtTaskTree::GroupItem> children)

children 로 지정된 std::initializer_list 을 기반으로 그룹을 생성합니다.

이 생성자는 그룹의 모든 자식 항목이 컴파일 시점에 알려져 있을 때 유용합니다:

const Group group {
    finishAllAndSuccess,
    QNetworkReplyWrapperTask(...),
    Group {
        QNetworkReplyWrapperTask(...),
        Group {
            parallel,
            QNetworkReplyWrapperTask(...),
            QNetworkReplyWrapperTask(...),
        }
        QThreadFunctionTask<QString>(...)
    }
};

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