이 페이지에서

QtTaskTree::QBarrier Class

class QtTaskTree::QBarrier

필요에 따라 완료되는 비동기 작업입니다. 더 보기...

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

QtTaskTree::QStartedBarrier

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

공용 함수

QBarrier(QObject *parent)
void advance()
qsizetype current() const
bool isRunning() const
qsizetype limit() const
std::optional<QtTaskTree::DoneResult> result() const
void setLimit(qsizetype value)
void start()
void stopWithResult(QtTaskTree::DoneResult result)

Signals

void done(QtTaskTree::DoneResult result)

재구현된 보호 함수

virtual bool event(QEvent *event) override

상세 설명

QBarrier는 advance()에 대한 후속 호출이 배리어의 제한(기본값은 1)에 도달할 때까지 기다립니다. DoneResult::Success 로 끝납니다.

종종 QTaskTree 레시피에서 실행 중인 다른 작업이 후속 작업을 설정하는 데 필요한 일부 데이터를 제공할 때까지 후속 순차 작업의 실행을 보류하는 데 사용됩니다.

멤버 함수 문서

[explicit] QBarrier::QBarrier(QObject *parent)

주어진 parent 으로 QBarrier를 구축합니다.

void QBarrier::advance()

장벽을 전진시킵니다. advance() 호출 횟수가 배리어의 제한에 도달하면 배리어는 DoneResult::Success 로 종료됩니다.

qsizetype QBarrier::current() const

장벽의 현재 전진 횟수를 반환합니다.

[private signal] void QBarrier::done(QtTaskTree::DoneResult result)

이 신호는 실행의 마지막 result 을 통과하여 배리어가 완료되면 발산됩니다.

참고: 이 신호는 비공개 신호입니다. 신호 연결에서 사용할 수 있지만 사용자가 방출할 수는 없습니다.

[override virtual protected] bool QBarrier::event(QEvent *event)

다시 구현합니다: QObject::event(QEvent *e).

bool QBarrier::isRunning() const

배리어가 현재 실행 중이면 true 를 반환하고, 그렇지 않으면 false 을 반환합니다.

qsizetype QBarrier::limit() const

배리어의 현재 제한을 반환합니다.

setLimit()도 참조하세요 .

std::optional<QtTaskTree::DoneResult> QBarrier::result() const

배리어 실행 결과를 반환합니다. 배리어가 시작되지 않았거나 아직 실행 중이면 반환되는 옵션은 비어 있습니다. 그렇지 않으면 마지막 실행 결과를 반환합니다.

void QBarrier::setLimit(qsizetype value)

제한을 value 으로 설정합니다. 차단이 시작된 후 advance()로의 호출 수가 제한에 도달하면 차단이 종료됩니다.

limit()도 참조하세요 .

void QBarrier::start()

장벽을 시작합니다.

void QBarrier::stopWithResult(QtTaskTree::DoneResult result)

주어진 result 으로 실행 중인 배리어를 무조건 중지합니다. 배리어의 제한은 무시됩니다.

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