PySide6.QtCore.QRunnable

class QRunnable

QRunnable 类是所有可运行对象的基类。更多

概要

方法

虚拟方法

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

QRunnable 类是一个接口,用于表示需要执行的任务或代码片段,由您重新实现的 run() 函数表示。

你可以使用QThreadPool在单独的线程中执行你的代码。如果autoDelete()返回true(默认值),QThreadPool会自动删除QRunnable。使用setAutoDelete()来更改自动删除标志。

QThreadPool 支持通过从 run() 函数内部调用 tryStart (this) 来多次执行相同的 QRunnable。如果启用了 autoDelete,当最后一个线程退出运行函数时,QRunnable 将被删除。在启用了 autoDelete 的情况下,多次使用相同的 QRunnable 调用 start() 会创建竞争条件,因此不推荐这样做。

另请参阅

QThreadPool

__init__()

构造一个QRunnable。默认情况下启用了自动删除。

autoDelete()
Return type:

布尔

如果启用了自动删除,则返回true;否则返回false。

如果启用了自动删除功能,QThreadPool 将在调用 run() 后自动删除此可运行对象;否则,所有权仍归应用程序程序员所有。

static create(functionToRun)
Parameters:

functionToRun – 对象

Return type:

QRunnable

abstract run()

在你的子类中实现这个纯虚函数。

setAutoDelete(autoDelete)
Parameters:

autoDelete – 布尔值

如果autoDelete为true,则启用自动删除;否则禁用自动删除。

如果启用了自动删除功能,QThreadPool 将在调用 run() 后自动删除此可运行对象;否则,所有权仍归应用程序程序员所有。

请注意,此标志必须在调用 start() 之前设置。在 start() 之后调用此函数会导致未定义的行为。

另请参阅

autoDelete() QThreadPool