TaskAdapter 类
template <typename Task, typename Deleter = std::default_delete<Task>> class Tasking::TaskAdapter实现自定义任务适配器的类模板。 更多...
头文件 | #include <solutions/tasking/tasktree.h> |
继承 | Tasking::TaskInterface |
注意:本类中的所有函数都是可重入的。
受保护的函数
TaskAdapter() | |
Task * | task() |
const Task * | task() const |
详细说明
TaskAdapter 类模板负责创建类型为 Task
的任务,开始执行,并在任务完成后报告成功或错误。它还将适配器与给定的 Task
类型关联起来。
用实际的 Task
类型重实现此类,以便将任务接口适配到一般的 TaskTree 接口,以管理 Task
实例。
每个子类都必须提供一个公共默认构造函数,实现 start() 方法,并在任务完成后发出 done() 信号。使用 task() 来访问关联的 Task
实例。
要将您的任务适配器用于任务树中,创建一个对 Tasking::CustomTask 模板的别名,并将您的任务适配器作为模板参数传递
// Defines actual worker class Worker {...}; // Adapts Worker's interface to work with task tree class WorkerTaskAdapter : public TaskAdapter<Worker> {...}; // Defines WorkerTask as a new custom task type to be placed inside Group items using WorkerTask = CustomTask<WorkerTaskAdapter>;
可选地,您可以将一个自定义的 Deleter
作为第二个模板参数传递给您的 TaskAdapter
子类所关联的 Task
。当省略 Deleter
参数时,默认使用 std::default_delete<Task>
。自定义的 Deleter
在运行任务的析构函数可能阻塞调用线程时很有用。而不是阻塞,自定义析构函数可以将运行的任务移到一个单独的线程中,并在那里实现阻塞销毁。这样,可以从调用线程的角度实现运行任务的快速销毁(具有阻塞的析构函数)。
有关实现自定义任务适配器的更多信息,请参阅任务适配器。
成员函数文档
[保护]
TaskAdapter::TaskAdapter()
为给定的 Task
类型创建任务适配器。
内部,它创建了一个 Task
实例,该实例可通过 task() 方法访问。可选提供的 Deleter
替代了 Task
析构函数。当省略 Deleter
时,默认使用 std::default_delete<Task>
。
另请参阅 task。
[protected]
Task *TaskAdapter::task()
返回关联的 Task
实例的指针。
[protected]
const Task *TaskAdapter::task() const
这是一个重载函数。
返回关联的 Task
实例的 const 指针。
©2024 The Qt Company Ltd. 本文档中的内容贡献版权属于各自的所有者。本提供的文档遵守由自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款。Qt 及相关标志是芬兰的 Qt 公司以及在世界其他地区的商标。所有其他商标均为各自所有者的财产。