이 페이지에서

QtTaskTree::ExecutableItem Class

class QtTaskTree::ExecutableItem

실행 가능한 작업 항목의 기본 클래스입니다. 더 보기...

헤더: #include <qtasktree.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
이후: Qt 6.11
상속합니다: QtTaskTree::GroupItem
상속받은 사람:

QtTaskTree::Forever, QtTaskTree::Group, QtTaskTree::QCustomTask, 그리고 QtTaskTree::QSyncTask

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

공용 함수

QtTaskTree::Group withAccept(ObjectSignalGetter &&getter) const
QtTaskTree::Group withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const
QtTaskTree::Group withLog(const QString &logName) const
QtTaskTree::Group withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

상세 설명

ExecutableItem은 실행 가능한 작업이 포함된 항목에 대한 추가 인터페이스를 제공합니다. 작업에 타임아웃을 첨부하려면 withTimeout()를 사용합니다. withLog ()를 사용하여 작업 시작 및 실행 결과에 대한 디버깅 정보를 포함할 수 있습니다.

멤버 함수 문서

template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withAccept(ObjectSignalGetter &&getter) const

this ExecutableItem 의 복사본을 신호 대기자와 함께 반환합니다. 전달된 getter 은 이미터와 해당 대기 신호를 설명하는 ObjectSignal 을 반환하는 함수입니다. getter 안에 makeObjectSignal()를 사용하여 ObjectSignal 객체를 만듭니다.

this ExecutableItem 이 오류로 완료되면 반환된 Group 은 어웨이터의 신호를 기다리지 않고 오류와 함께 즉시 완료됩니다.

this ExecutableItem 이 성공으로 완료되면 반환된 Group 은 즉시 완료되지 않고 대기 신호가 전송될 때까지 기다립니다. 대기 신호가 전송된 후 반환된 Group 은 성공적으로 완료됩니다. this ExecutableItem 이 완료되기 전에 대기 신호가 전송되면 대기 단계가 건너뛰고 반환된 Group 이 동시에 완료됩니다.

대기 신호에 대한 연결은 this ExecutableItem 이 시작되려고 할 때 설정됩니다. 대기 신호가 이전에 트리거된 경우 this ExecutableItem 이 시작된 후에는 이를 알 수 없습니다.

template <typename ObjectSignalGetter> QtTaskTree::Group ExecutableItem::withCancel(ObjectSignalGetter &&getter, std::initializer_list<QtTaskTree::GroupItem> postCancelRecipe = {}) const

this ExecutableItem 복사본을 취소 가능하게 만듭니다. 전달된 getter 은 이미터와 해당 취소 신호를 설명하는 ObjectSignal 을 반환하는 함수입니다. getter 안에 makeObjectSignal()를 사용하여 ObjectSignal 객체를 만듭니다. 취소 신호가 방출되면 this ExecutableItem 이 취소되고 선택적으로 제공된 postCancelRecipe 이 실행되며 반환된 Group은 오류와 함께 완료됩니다.

취소 신호가 전송되기 전에 this ExecutableItem 이 완료되면 반환된 그룹은 this ExecutableItem 이 완료된 것과 동일한 결과로 즉시 완료됩니다. 이 경우 선택적으로 제공된 postCancelRecipe 은 건너뜁니다.

취소 신호에 대한 연결은 this ExecutableItem 이 시작되려고 할 때 설정됩니다. 이전에 취소 신호가 트리거된 경우 this ExecutableItem 이 시작된 후에는 취소 신호가 표시되지 않습니다.

QtTaskTree::Group ExecutableItem::withLog(const QString &logName) const

작업 시작 시와 작업 완료 후 발행되는 this ExecutableItem 의 사본에 사용자 지정 디버그 인쇄물을 첨부하고 결합된 항목을 반환합니다.

디버그 출력에는 이벤트의 타임스탬프(시작 또는 완료)와 디버그 로그에서 특정 작업을 식별하기 위한 logName 이 포함됩니다.

완료 출력에는 실행이 동기식인지 비동기식인지 여부, 결과( DoneWith 열거형에 설명된 값) 및 총 실행 시간(밀리초)에 대한 추가 정보가 포함됩니다.

QtTaskTree::Group ExecutableItem::withTimeout(std::chrono::milliseconds timeout, const std::function<void ()> &handler = {}) const

QTimeoutTaskthis ExecutableItem 의 사본에 연결하고, 선택적으로 제공된 시간 제한( handler)과 함께 timeout 이후 밀리초가 경과한 후 연결한 항목을 반환합니다.

timeout 이 지나기 전에 ExecutableItem 이 완료되면 반환된 항목은 작업의 결과와 함께 즉시 완료됩니다. 그렇지 않으면 handler 이 호출되고(제공된 경우) 작업이 취소되며 반환된 항목은 오류와 함께 완료됩니다.

관련 비회원

QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)

DoneResultitem 이 무효화된 그룹을 반환합니다.

itemDoneResult::Success 을 보고하면 반환된 항목은 DoneResult::Error 을 보고합니다. itemDoneResult::Error 을 보고하면 반환된 항목은 DoneResult::Success 을 보고합니다.

반환된 항목은 다음과 같습니다:

Group {
    item,
    onGroupDone([](DoneWith doneWith) { return toDoneResult(doneWith == DoneWith::Error); })
}

operator&&() 및 operator||()도 참조하세요 .

QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)

firstsecond 작업이 병합된 그룹을 반환합니다.

firstsecond 작업은 모두 순서대로 실행됩니다. 두 작업 모두 DoneResult::Success 을 보고하면 반환된 항목은 DoneResult::Success 을 보고합니다. 그렇지 않으면 반환된 항목은 DoneResult::Error 을 보고합니다.

first 작업이 DoneResult::Error 을 보고하면 second 작업은 건너뛰고 반환된 항목은 즉시 DoneResult::Error 을 보고합니다.

반환된 항목은 다음과 같습니다:

Group { stopOnError, first, second }

참고: 다음 코드를 사용하여 단락 방식으로 병렬 실행을 수행할 수 있습니다: Group { parallel, stopOnError, first, second }. 이 경우: 첫 번째 완료된 작업이 DoneResult::Error 을 보고하면 다른 작업은 취소되고 그룹은 즉시 DoneResult::Error 을 보고합니다.

operator||() 및 operator!()도 참조하세요 .

QtTaskTree::Group operator&&(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

resultDoneResult::Success 인 경우 item 작업을 반환하고, 그렇지 않으면 완료된 결과를 DoneResult::Error 로 조정한 item 작업을 반환합니다.

task && DoneResult::Error 은 작업의 완료된 결과를 무조건 DoneResult::Error 으로 조정하는 것과 동일합니다.

이 함수는 ExecutableItem::operator&&()를 오버로드합니다.

QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)

firstsecond 작업이 병합된 그룹을 반환합니다.

firstsecond 작업은 모두 순서대로 실행됩니다. 두 작업 모두 DoneResult::Error 을 보고하면 반환된 항목은 DoneResult::Error 을 보고합니다. 그렇지 않으면 반환된 항목은 DoneResult::Success 을 보고합니다.

first 작업이 DoneResult::Success 을 보고하면 second 작업은 건너뛰고 반환된 항목은 즉시 DoneResult::Success 을 보고합니다.

반환된 항목은 다음과 같습니다:

Group { stopOnSuccess, first, second }

참고: 다음 코드를 사용하여 단락 방식으로 분리 작업을 병렬로 실행할 수 있습니다: Group { parallel, stopOnSuccess, first, second }. 이 경우 첫 번째 완료된 작업이 DoneResult::Success 을 보고하면 다른 작업은 취소되고 그룹은 즉시 DoneResult::Success 을 보고합니다.

operator&&() 및 operator!()도 참조하세요 .

QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &item, QtTaskTree::DoneResult result)

resultDoneResult::Error 인 경우 item 작업을 반환하고, 그렇지 않으면 완료된 결과를 DoneResult::Success 로 조정한 item 작업을 반환합니다.

task || DoneResult::Success 은 작업의 완료된 결과를 무조건 DoneResult::Success 으로 조정하는 것과 동일합니다.

이 함수는 ExecutableItem::operator||()를 오버로드합니다.

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