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
QTimeoutTask 을 this ExecutableItem 의 사본에 연결하고, 선택적으로 제공된 시간 제한( handler)과 함께 timeout 이후 밀리초가 경과한 후 연결한 항목을 반환합니다.
timeout 이 지나기 전에 ExecutableItem 이 완료되면 반환된 항목은 작업의 결과와 함께 즉시 완료됩니다. 그렇지 않으면 handler 이 호출되고(제공된 경우) 작업이 취소되며 반환된 항목은 오류와 함께 완료됩니다.
관련 비회원
QtTaskTree::Group operator!(const QtTaskTree::ExecutableItem &item)
DoneResult 의 item 이 무효화된 그룹을 반환합니다.
item 가 DoneResult::Success 을 보고하면 반환된 항목은 DoneResult::Error 을 보고합니다. item 가 DoneResult::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)
first 및 second 작업이 병합된 그룹을 반환합니다.
first 및 second 작업은 모두 순서대로 실행됩니다. 두 작업 모두 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)
result 이 DoneResult::Success 인 경우 item 작업을 반환하고, 그렇지 않으면 완료된 결과를 DoneResult::Error 로 조정한 item 작업을 반환합니다.
task && DoneResult::Error 은 작업의 완료된 결과를 무조건 DoneResult::Error 으로 조정하는 것과 동일합니다.
이 함수는 ExecutableItem::operator&&()를 오버로드합니다.
QtTaskTree::Group operator||(const QtTaskTree::ExecutableItem &first, const QtTaskTree::ExecutableItem &second)
first 및 second 작업이 병합된 그룹을 반환합니다.
first 및 second 작업은 모두 순서대로 실행됩니다. 두 작업 모두 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)
result 이 DoneResult::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.