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()方法来安排给定配方(recipe)的执行。系统保证在任何给定时刻至多只有一个任务树正在执行。
另请参阅 Task Tree Runners 。
成员函数文档
QSequentialTaskTreeRunner::QSequentialTaskTreeRunner()
构建一个顺序任务树运行器。
[noexcept] QSequentialTaskTreeRunner::~QSequentialTaskTreeRunner()
销毁顺序任务树运行器。可能正在运行的任务树将被删除,队列中的任务也将被移除。不会调用任何任务树的完成处理程序。
另请参阅 ~QTaskTree()。
void QSequentialTaskTreeRunner::cancel()
取消正在运行的任务树。调用任务树的“完成”处理程序,并传入DoneWith::Cancel 。所有已排入队列的任务均被移除。
void QSequentialTaskTreeRunner::cancelCurrent()
取消正在运行的任务树。调用任务树的“完成”处理程序,并传入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.