QRunnable Class
Die Klasse QRunnable ist die Basisklasse für alle runnable Objekte. Mehr...
Kopfzeile: | #include <QRunnable> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QRunnable ist Teil der Threading-Klassen.
Öffentliche Funktionen
QRunnable() | |
virtual | ~QRunnable() |
bool | autoDelete() const |
virtual void | run() = 0 |
void | setAutoDelete(bool autoDelete) |
Statische öffentliche Mitglieder
QRunnable * | create(Callable &&callableToRun) |
Detaillierte Beschreibung
Die Klasse QRunnable ist eine Schnittstelle zur Darstellung einer auszuführenden Aufgabe oder eines auszuführenden Codestücks, das durch Ihre Reimplementierung der Funktion run() dargestellt wird.
Sie können QThreadPool verwenden, um Ihren Code in einem separaten Thread auszuführen. QThreadPool löscht den QRunnable automatisch, wenn autoDelete() true
zurückgibt (der Standard). Verwenden Sie setAutoDelete(), um das Flag für automatisches Löschen zu ändern.
QThreadPool unterstützt das mehrmalige Ausführen derselben QRunnable durch den Aufruf von QThreadPool::tryStart(this) aus der Funktion run(). Wenn autoDelete aktiviert ist, wird die QRunnable gelöscht, wenn der letzte Thread die Run-Funktion verlässt. Der mehrfache Aufruf von QThreadPool::start() mit der gleichen QRunnable, wenn autoDelete aktiviert ist, erzeugt eine Race Condition und wird nicht empfohlen.
Siehe auch QThreadPool.
Dokumentation der Mitgliedsfunktionen
[constexpr noexcept]
QRunnable::QRunnable()
Konstruiert einen QRunnable. 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.
Wenn die automatische Löschung aktiviert ist, löscht QThreadPool diese Runnable nach dem Aufruf von run() automatisch; andernfalls verbleibt das Eigentum beim Anwendungsprogrammierer.
Siehe auch setAutoDelete() und QThreadPool.
[static]
template <typename Callable, QRunnable::if_callable<Callable> = true> QRunnable *QRunnable::create(Callable &&callableToRun)
Erzeugt ein QRunnable, das callableToRun in run aufruft ().
Die automatische Löschung ist standardmäßig aktiviert.
Hinweis: Diese Funktion nimmt nur an der Überladungsauflösung teil, wenn Callable
eine Funktion oder ein Funktionsobjekt ist, das mit null Argumenten aufgerufen werden kann.
Hinweis: In Qt-Versionen vor 6.6 nahm diese Methode nur kopierbare Funktionen an.
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 wahr ist; andernfalls ist die automatische Löschung deaktiviert.
Wenn die automatische Löschung aktiviert ist, wird QThreadPool diese Runnable nach dem Aufruf von run() automatisch löschen; andernfalls bleibt das Eigentum 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 einem undefinierten Verhalten.
Siehe auch autoDelete() und QThreadPool.
© 2025 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.