Auf dieser Seite

QRunnable Class

Die Klasse „QRunnable“ ist die Basisklasse für alle ausführbaren Objekte. Mehr...

Header: #include <QRunnable>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

Öffentliche Funktionen

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

Statische öffentliche Mitglieder

QRunnable *create(Callable &&callableToRun)

Ausführliche Beschreibung

Die Klasse „QRunnable“ ist eine Schnittstelle zur Darstellung einer Aufgabe oder eines Codeabschnitts, der ausgeführt werden muss, und wird durch Ihre Neuimplementierung der Funktion „ run()“ repräsentiert.

Mit „ QThreadPool “ können Sie Ihren Code in einem separaten Thread ausführen. „ QThreadPool “ löscht das „QRunnable“ automatisch, wenn „ autoDelete()“ den Wert „ true “ zurückgibt (Standard). Verwenden Sie „ setAutoDelete()“, um das Flag für die automatische Löschung zu ändern.

QThreadPool Unterstützt die mehrmalige Ausführung desselben „QRunnable“ durch Aufruf von ` QThreadPool::tryStart(this)` innerhalb der Funktion ` run()`. Wenn ` autoDelete ` aktiviert ist, wird das „QRunnable“ gelöscht, sobald der letzte Thread die `run`-Funktion verlässt. Der mehrmalige Aufruf von ` QThreadPool::start()` mit demselben „QRunnable“ bei aktiviertem ` autoDelete ` führt zu einer Race Condition und wird nicht empfohlen.

Siehe auch QThreadPool.

Dokumentation zu Mitgliedsfunktionen

[constexpr noexcept default] QRunnable::QRunnable()

Erzeugt ein QRunnable-Objekt. Die automatische Löschung ist standardmäßig aktiviert.

Siehe auch autoDelete() und setAutoDelete().

[virtual noexcept] QRunnable::~QRunnable()

QRunnable virtueller Destruktor.

bool QRunnable::autoDelete() const

Gibt „ true “ zurück, wenn die automatische Löschung aktiviert ist; andernfalls „false“.

Ist die automatische Löschung aktiviert, löscht „ QThreadPool “ dieses Runnable automatisch nach dem Aufruf von „ run()“; andernfalls verbleibt die Verantwortung beim Anwendungsprogrammierer.

Siehe auch ` setAutoDelete()` und ` QThreadPool`.

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

Erstellt ein „ QRunnable “, das „ callableToRun “ in „ run()“ aufruft.

Die automatische Löschung ist standardmäßig aktiviert.

Hinweis: In Qt-Versionen vor 6.6 akzeptierte diese Methode nur kopierbare Funktionen.

Einschränkungen

Nimmt nur dann an der Überladungsauflösung teil, wenn „ Callable “ eine Funktion oder ein Funktionsobjekt ist, das mit null Argumenten aufgerufen werden kann.

Siehe auch „ run()“ und „ autoDelete()“.

[pure virtual] void QRunnable::run()

Implementieren Sie diese rein virtuelle Funktion in Ihrer Unterklasse.

void QRunnable::setAutoDelete(bool autoDelete)

Aktiviert die automatische Löschung, wenn „ autoDelete “ auf „true“ gesetzt ist; andernfalls ist die automatische Löschung deaktiviert.

Ist die automatische Löschung aktiviert, löscht „ QThreadPool “ dieses „runnable“ automatisch nach dem Aufruf von „ run “(); andernfalls verbleibt die Verantwortung beim Anwendungsprogrammierer.

Beachten Sie, dass dieses Flag vor dem Aufruf von ` QThreadPool::start()` gesetzt werden muss. Der Aufruf dieser Funktion nach ` QThreadPool::start()` führt zu undefiniertem Verhalten.

Siehe auch „ autoDelete()“ und „ 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.