QRunnable 类
QRunnable 类是所有可运行对象的基类。 更多...
头文件 | #include <QRunnable> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 所有成员列表,包括继承的成员
- QRunnable 是 线程类 的一个部分。
公共函数
QRunnable() | |
virtual | ~QRunnable() |
bool | autoDelete() const |
virtual void | run() = 0 |
void | setAutoDelete(bool autoDelete) |
静态公共成员
QRunnable * | create(Callable &&callableToRun) |
详细描述
QRunnable 类是表示需要执行的任务或代码的接口,通过实现 run() 函数来表示。
您可以使用 QThreadPool 在单独的线程中执行代码。如果 autoDelete() 返回 true
(默认),则 QThreadPool 将自动删除 QRunnable。使用 setAutoDelete() 来更改自动删除标志。
QThreadPool 支持通过从 run() 函数内部调用 QThreadPool::tryStart(this) 来执行同一 QRunnable 多次。如果启用了 autoDelete,则 QRunnable 将在最后一个线程退出 run() 函数时被删除。在启用了 autoDelete 的情况下,多次使用同一 QRunnable 调用 QThreadPool::start() 会创建竞争条件,不推荐这样做。
另请参见 QThreadPool。
成员函数文档
[constexpr noexcept]
QRunnable::QRunnable()
构造一个 QRunnable。默认启用自动删除。
另请参见 autoDelete() 和 setAutoDelete。
[virtual noexcept]
QRunnable::~QRunnable()
QRunnable 虚拟析构函数。
bool QRunnable::autoDelete() const
如果启用了自动删除,则返回 true
;否则返回 false。
如果启用了自动删除,QThreadPool将自动在调用run();后删除此可运行项;否则,所有权仍归应用程序程序员。
另请参阅setAutoDelete()和QThreadPool。
[静态]
模板<typename Callable, QRunnable::if_callable<Callable> = true> QRunnable *QRunnable::create(Callable &&callableToRun)
创建一个QRunnable,在其中调用callableToRun的run方法。
默认情况下启用了自动删除。
注意:如果Callable是一个可以无参数调用的函数或函数对象,则此函数参与重载解析。
注意:在6.6之前的Qt版本中,此方法仅接受可复制的函数。
另请参阅run() 和 autoDelete。
[纯虚拟]
void QRunnable::run()
在您的子类中实现此纯虚拟函数。
void QRunnable::setAutoDelete(bool autoDelete)
如果autoDelete为true,则启用自动删除;否则禁用自动删除。
如果启用了自动删除,QThreadPool将自动在调用run();后删除此可运行项;否则,所有权仍归应用程序程序员。
请注意,必须在调用QThreadPool::start()之前设置此标志。在调用QThreadPool::start()后调用此函数会导致未定义行为。
另请参阅autoDelete() 和 QThreadPool。
© 2024 Qt公司。此处包含的文档贡献的版权属于其各自的所有者。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证1.3版许可的。Qt和相应的标志是芬兰的Qt公司和其他国家的商标。所有其他商标均为各自所有者的财产。