在本页

QtTaskTree::QSequentialTaskTreeRunner Class

class QtTaskTree::QSequentialTaskTreeRunner

顺序任务树执行控制器。更多

头文件: #include <qtasktreerunner.h>
CMake: find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake: QT += tasktree
Qt 6.11

公共函数

QSequentialTaskTreeRunner()
~QSequentialTaskTreeRunner()
void cancel()
void cancelCurrent()
void enqueue(const QtTaskTree::Group &recipe, SetupHandler &&setupHandler = {}, DoneHandler &&doneHandler = {}, QtTaskTree::CallDone callDone = QtTaskTree::CallDoneFlag::Always)
bool isRunning() const
void reset()
void resetCurrent()

详细说明

管理顺序任务树的执行。使用enqueue() 方法调度给定配方的执行。保证在任何给定时间内最多只有一棵任务树在执行。

另请参阅 Task Tree Runners

成员函数文档

QSequentialTaskTreeRunner::QSequentialTaskTreeRunner()

构建顺序任务树运行程序。

[noexcept] QSequentialTaskTreeRunner::~QSequentialTaskTreeRunner()

销毁顺序任务树运行程序。可能正在运行的任务树会被删除,已排队等待的任务也会被移除。不会调用任务树的完成处理程序。

另请参见 ~QTaskTree().

void QSequentialTaskTreeRunner::cancel()

取消正在运行的任务树。调用任务树的完成处理程序DoneWith::Cancel 。所有队列任务都会被删除。

void QSequentialTaskTreeRunner::cancelCurrent()

取消正在运行的任务树。调用 "任务树 "的 done 处理程序(DoneWith::Cancel )。如果有任何已排队的配方,则启动已取消的配方。

template <typename SetupHandler = QtTaskTree::TreeSetupHandler, typename DoneHandler = QtTaskTree::TreeDoneHandler> void QSequentialTaskTreeRunner::enqueue(const QtTaskTree::Group &recipe, SetupHandler &&setupHandler = {}, DoneHandler &&doneHandler = {}, QtTaskTree::CallDone callDone = QtTaskTree::CallDoneFlag::Always)

调度recipe 的执行。如果没有任务树在执行,运行程序会同步启动新的任务树,否则recipe 会被排队。当当前正在执行的任务树结束时,运行程序会使用已注销的配方启动新的任务树。当新任务树即将启动时,调用setupHandler 。任务树完成后,调用doneHandler 。根据传递的callDone 调用doneHandler

bool QSequentialTaskTreeRunner::isRunning() const

返回顺序任务树运行程序当前是否正在执行任务树。

void QSequentialTaskTreeRunner::reset()

重置正在运行的任务树。不会调用任务树的已完成处理程序。所有队列中的任务都会被删除。

void QSequentialTaskTreeRunner::resetCurrent()

重置正在运行的任务树。不会调用任务树的完成处理程序。如果有任何排队等待的配方,则启动已取消排队的配方。

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