QRunnable Class▲
-
Header: QRunnable
-
CMake:
find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
-
qmake: QT += core
-
Inherited By:
-
Group: QRunnable is part of thread
Detailed Description▲
The QRunnable class is an interface for representing a task or piece of code that needs to be executed, represented by your reimplementation of the run() function.
You can use QThreadPool to execute your code in a separate thread. QThreadPool deletes the QRunnable automatically if autoDelete() returns true (the default). Use setAutoDelete() to change the auto-deletion flag.
QThreadPool supports executing the same QRunnable more than once by calling QThreadPool::tryStart(this) from within the run() function. If autoDelete is enabled the QRunnable will be deleted when the last thread exits the run function. Calling QThreadPool::start() multiple times with the same QRunnable when autoDelete is enabled creates a race condition and is not recommended.
See Also▲
See also QThreadPool
Member Function Documentation▲
[constexpr] QRunnable::QRunnable()▲
Constructs a QRunnable. Auto-deletion is enabled by default.
See Also▲
See also autoDelete(), setAutoDelete()
[virtual] QRunnable::~QRunnable()▲
QRunnable virtual destructor.
bool QRunnable::autoDelete() const▲
Returns true is auto-deletion is enabled; false otherwise.
If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(); otherwise, ownership remains with the application programmer.
See Also▲
See also setAutoDelete(), QThreadPool
[static, since 5.15] QRunnable *QRunnable::create(std::function<void ()> functionToRun)▲
Creates a QRunnable that calls functionToRun in run().
Auto-deletion is enabled by default.
This function was introduced in Qt 5.15.
See Also▲
See also run(), autoDelete()
[pure virtual] void QRunnable::run()▲
Implement this pure virtual function in your subclass.
void QRunnable::setAutoDelete(bool autoDelete)▲
Enables auto-deletion if autoDelete is true; otherwise auto-deletion is disabled.
If auto-deletion is enabled, QThreadPool will automatically delete this runnable after calling run(); otherwise, ownership remains with the application programmer.
Note that this flag must be set before calling QThreadPool::start(). Calling this function after QThreadPool::start() results in undefined behavior.
See Also▲
See also autoDelete(), QThreadPool