Spec-Zone.ru › Qt

Класс 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.2/qrunnable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API