Sur cette page

QRunnable Class

La classe QRunnable est la classe de base pour tous les objets exécutables. Plus d'informations...

En-tête : #include <QRunnable>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Fonctions publiques

QRunnable()
virtual ~QRunnable()
bool autoDelete() const
virtual void run() = 0
void setAutoDelete(bool autoDelete)

Membres publics statiques

QRunnable *create(Callable &&callableToRun)

Description détaillée

La classe QRunnable est une interface permettant de représenter une tâche ou un morceau de code devant être exécuté, représenté par votre réimplémentation de la fonction run().

Vous pouvez utiliser QThreadPool pour exécuter votre code dans un thread séparé. QThreadPool supprime automatiquement le QRunnable si autoDelete() renvoie true (par défaut). Utilisez setAutoDelete() pour modifier le drapeau de suppression automatique.

QThreadPool prend en charge l'exécution du même QRunnable plus d'une fois en appelant QThreadPool::tryStart(this) à partir de la fonction run(). Si autoDelete est activé, le QRunnable sera supprimé lorsque le dernier thread quittera la fonction d'exécution. Appeler QThreadPool::start() plusieurs fois avec le même QRunnable lorsque autoDelete est activé crée une condition de course et n'est pas recommandé.

Voir également QThreadPool.

Documentation des fonctions membres

[constexpr noexcept] QRunnable::QRunnable()

Construit un QRunnable. La suppression automatique est activée par défaut.

Voir aussi autoDelete() et setAutoDelete().

[virtual noexcept] QRunnable::~QRunnable()

QRunnable destructeur virtuel.

bool QRunnable::autoDelete() const

Retourne true si l'effacement automatique est activé ; false sinon.

Si l'effacement automatique est activé, QThreadPool effacera automatiquement cet objet exécutable après avoir appelé run() ; sinon, le programmeur de l'application reste propriétaire de l'objet.

Voir aussi setAutoDelete() et QThreadPool.

[static] template <typename Callable, QRunnable::if_callable<Callable> = true> QRunnable *QRunnable::create(Callable &&callableToRun)

Crée un QRunnable qui appelle callableToRun dans run().

La suppression automatique est activée par défaut.

Note : Dans les versions de Qt antérieures à la 6.6, cette méthode ne prenait que les fonctions copiables.

Contraintes

Ne participe à la résolution de surcharge que si Callable est une fonction ou un objet fonction qui peut être appelé avec zéro argument.

Voir aussi run() et autoDelete().

[pure virtual] void QRunnable::run()

Implémentez cette fonction virtuelle pure dans votre sous-classe.

void QRunnable::setAutoDelete(bool autoDelete)

Active l'effacement automatique si autoDelete est vrai ; sinon l'effacement automatique est désactivé.

Si la suppression automatique est activée, QThreadPool supprimera automatiquement cet objet exécutable après avoir appelé run() ; dans le cas contraire, le programmeur de l'application reste propriétaire de l'objet.

Notez que cet indicateur doit être défini avant d'appeler QThreadPool::start(). L'appel de cette fonction après QThreadPool::start() entraîne un comportement indéfini.

Voir également autoDelete() et QThreadPool.

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