このページでは

QtTaskTree::QBarrier Class

class QtTaskTree::QBarrier

オンデマンドで終了する非同期タスク。詳細...

ヘッダ #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)

シグナル

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.