QtTaskTree::ForeverIterator Class
class QtTaskTree::ForeverIterator用于 For 循环内部的无限迭代器。更多内容...
| 头文件: | #include <qtasktree.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS TaskTree) target_link_libraries(mytarget PRIVATE Qt6::TaskTree) |
| qmake: | QT += tasktree |
| 自: | Qt 6.11 |
| 继承自: | QtTaskTree::Iterator |
| 状态: | 技术预览 |
该类处于技术预览阶段,可能会发生变更。
注意:该类中的所有函数均为可重入函数。
公共函数
另请参阅 Iterator 、RepeatIterator 、UntilIterator 和ListIterator 。
成员函数文档
ForeverIterator::ForeverIterator()
为 For (ForeverIterator()) >> Do {} 结构构建一个永不终止的迭代器。
注意: 如果您的 Do 代码块指定了并行模式,请务必 格外小心——在这种情况下,QTaskTree 可能会实例化无限数量的任务。
使用示例:
static const intmaxNumber= 10;
const intluckyNumber=QRandomGenerator().global()->bounded(maxNumber);
qDebug() << "Today's lucky number is:" << luckyNumber;
qDebug() << "Let's start the drawing...";
const autoonNumberCheck= [luckyNumber]{
const intdrawnNumber=QRandomGenerator().global()->bounded(maxNumber);
qDebug() << "You have drawn:" << drawnNumber;
bool赢=抽取的数字==幸运数字;
if(赢)
qDebug() << "You have won! Congratulations!";
returnwon;
};
constGroup recipe=For (ForeverIterator())>>Do {
stopOnSuccess,
timeoutTask(1s),
QSyncTask(onNumberCheck)
};当由 `QTaskTree` 启动 `recipe ` 时,可能的输出结果如下:
Today's lucky number is: 8
Let's start the drawing...
You have drawn: 2
You have drawn: 2
You have drawn: 6
You have drawn: 7
You have drawn: 9
You have drawn: 8
You have won! Congratulations!© 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.