- audio: 更新 audio-system 方法文档 - components: 新增 audio-listener/audio-source 组件方法文档,新增 remove-component 方法 - core: 更新 filewriter, types 文档 - math: 更新 box 方法文档 - memory: 更新 proxy-allocator 文档 - resources: 更新 loader 和 texture 文档 - rhi: 更新 opengl 设备、shader、swap-chain 文档 - threading: 更新 mutex 和 task-system 文档
2.5 KiB
2.5 KiB
ITask
命名空间: XCEngine::Threading
类型: class (abstract)
头文件: XCEngine/Threading/Task.h
描述: 任务基类抽象接口和任务状态/优先级枚举定义。
概述
ITask 是任务系统的核心抽象基类。用户需要继承此类并实现 Execute() 方法来定义具体的任务逻辑。任务系统通过引用计数自动管理任务生命周期。
TaskPriority 枚举
任务优先级枚举(数值越小优先级越高)。
| 值 | 描述 |
|---|---|
Critical |
关键优先级(0) |
High |
高优先级(1) |
Normal |
普通优先级(2) |
Low |
低优先级(3) |
Idle |
空闲优先级(4) |
TaskStatus 枚举
任务状态枚举。
| 值 | 描述 |
|---|---|
Pending |
等待中 |
Scheduled |
已调度 |
Running |
运行中 |
Completed |
已完成 |
Failed |
失败 |
Canceled |
已取消 |
公共方法
| 方法 | 描述 |
|---|---|
virtual ~ITask() |
虚析构函数 |
Execute |
任务执行逻辑(纯虚) |
OnComplete |
任务完成回调(可重写) |
OnCancel |
任务取消回调(可重写) |
GetPriority |
获取优先级 |
GetStatus |
获取状态 |
GetId |
获取任务 ID |
SetId |
设置任务 ID |
SetPriority |
设置优先级 |
SetStatus |
设置状态 |
AddRef |
增加引用计数 |
Release |
减少引用计数(引用归零时自动 delete) |
受保护方法
| 方法 | 描述 |
|---|---|
ITask() |
默认构造函数 |
ITask(TaskPriority priority) |
带优先级的构造函数 |
使用示例
class MyTask : public ITask {
public:
explicit MyTask(int data) : m_data(data) {}
void Execute() override {
printf("Task executed with data: %d\n", m_data);
}
void OnComplete() override {
printf("Task completed\n");
}
private:
int m_data;
};
auto task = new MyTask(42);
task->SetPriority(TaskPriority::High);
TaskSystem::Get().Submit(std::unique_ptr<ITask>(task));
相关文档
- LambdaTask - Lambda 任务封装
- TaskGroup - 任务组
- TaskSystem - 任务系统
- ../threading.md - 模块总览