Класс QRunnable
Класс QRunnable является базовым классом для всех выполняемых объектов. Подробнее...
| Заголовок: | #include <QRunnable> |
| CMake: | find_package(Qt6 COMPONENTS Core REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Core) |
| qmake: | QT += core |
Открытые функции
| QRunnable() | |
| virtual | ~QRunnable() |
| bool | autoDelete() const |
| virtual void | run() = 0 |
| void | setAutoDelete(bool autoDelete) |
Статические открытые члены
| QRunnable * | create(std::function<void ()> functionToRun) |
Подробное описание
Класс QRunnable — это интерфейс для представления задачи или фрагмента кода, который необходимо выполнить, представленного вашей переопределённой функцией run().
Вы можете использовать QThreadPool, чтобы выполнить свой код в отдельном потоке. QThreadPool удаляет QRunnable автоматически, если autoDelete() возвращает true (по умолчанию). Используйте setAutoDelete(), чтобы изменить флаг автоматического удаления.
QThreadPool поддерживает выполнение одного и того же QRunnable более одного раза, вызывая QThreadPool::tryStart(this) изнутри функции run(). Если autoDelete включен, QRunnable будет удален, когда последний поток завершит функцию run. Вызов QThreadPool::start() несколько раз с одним и тем же QRunnable, когда autoDelete включен, создаёт гонку и не рекомендуется.
См. также QThreadPool.
Документация по функциям-членам
QRunnable::QRunnable()
Конструирует QRunnable. Автоматическое удаление включено по умолчанию.
См. также autoDelete() и setAutoDelete().
[virtual] QRunnable::~QRunnable()
Виртуальный деструктор QRunnable.
bool QRunnable::autoDelete() const
Возвращает true если автоматическое удаление включено; иначе false.
Если автоматическое удаление включено, QThreadPool автоматически удалит этот выполняемый объект после вызова run(); в противном случае владение остается за программистом приложения.
См. также setAutoDelete() и QThreadPool.
[static, since 5.15] QRunnable *QRunnable::create(std::function<void ()> functionToRun)
Создаёт QRunnable, который вызывает functionToRun в run().
Автоматическое удаление включено по умолчанию.
Эта функция была представлена в Qt 5.15.
См. также run() и autoDelete().
[pure virtual] void QRunnable::run()
Реализуйте эту чистую виртуальную функцию в вашем подклассе.
void QRunnable::setAutoDelete(bool autoDelete)
Включает автоматическое удаление, если autoDelete равно true; в противном случае автоматическое удаление отключено.
Если автоматическое удаление включено, QThreadPool автоматически удалит этот выполняемый объект после вызова run(); в противном случае владение остается за программистом приложения.
Обратите внимание, что этот флаг должен быть установлен до вызова QThreadPool::start(). Вызов этой функции после QThreadPool::start() приводит к неопределённому поведению.
См. также autoDelete() и QThreadPool.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qrunnable.html