Sur cette page

QtTaskTree::ForeverIterator Class

class QtTaskTree::ForeverIterator

Itérateur infini à utiliser à l'intérieur de l'élément For. Plus...

En-tête : #include <qtasktree.h>
CMake : find_package(Qt6 REQUIRED COMPONENTS TaskTree)
target_link_libraries(mytarget PRIVATE Qt6::TaskTree)
qmake : QT += tasktree
Depuis : Qt 6.11
Hérite : QtTaskTree::Iterator

Note : Toutes les fonctions de cette classe sont réentrantes.

Fonctions publiques

Description détaillée

Voir aussi Iterator, RepeatIterator, UntilIterator, et ListIterator.

Documentation des fonctions membres

ForeverIterator::ForeverIterator()

Construit un itérateur sans fin pour la construction For (ForeverIterator()) >> Do {}.

Remarque : soyez très prudent si votre corps Do spécifie le mode parallèle - dans ce cas, QTaskTree peut instancier un nombre infini de tâches.

Exemple d'utilisation :

static const int maxNumber = 10;const int luckyNumber = QRandomGenerator().global()->bounded(maxNumber) ;
qDebug() << "Today's lucky number is:" << luckyNumber;
qDebug() << "Let's start the drawing...";

const auto onNumberCheck = [luckyNumber] { const int drawnNumber = QRandomGenerator().global()->bounded(maxNumber) ;    qDebug() << "You have drawn:" << drawnNumber;
   bool won = drawnNumber == luckyNumber ; if (won)        qDebug() << "You have won! Congratulations!";
   return won ; } ;const Group recipe = For (ForeverIterator())>> Do { stopOnSuccess,timeoutTask(1s),    QSyncTask(onNumberCheck) } ;

La sortie possible lorsque le recipe est démarré par le QTaskTree:

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.