# TaskGroup **命名空间**: `XCEngine::Threading` **类型**: `class` **头文件**: `XCEngine/Threading/TaskGroup.h` **描述**: 管理一组相关任务的执行和同步 ## 概述 TaskGroup 用于将多个相关任务组织在一起,统一管理它们的执行和同步。任务组内的任务可以声明依赖关系,确保任务按照正确的顺序执行。支持任务优先级设置、完成回调、进度查询和取消操作。 主要功能: - 添加任务(ITask 对象或函数回调) - 声明任务间依赖关系 - 等待所有任务完成 - 设置完成回调 - 查询完成进度 - 取消未执行的任务 ## 公共方法 | 方法 | 描述 | |------|------| | [`Task()`](task-group.md) | 默认构造函数 | | [`~Task()`](task-group.md) | 析构函数 | | [`AddTask`](add-task.md) | 添加任务到组(支持 ITask 或 Callback) | | [`AddDependency`](add-dependency.md) | 添加任务依赖关系 | | [`Wait`](wait.md) | 阻塞等待所有任务完成 | | [`WaitFor`](wait-for.md) | 等待指定超时时间 | | [`SetCompleteCallback`](set-complete-callback.md) | 设置完成回调函数 | | [`IsComplete`](is-complete.md) | 检查所有任务是否完成 | | [`GetProgress`](get-progress.md) | 获取任务组完成进度 | | [`Cancel`](cancel.md) | 取消所有未执行的任务 | ## 使用示例 ```cpp #include "XCEngine/Threading/TaskGroup.h" #include "XCEngine/Threading/Task.h" #include using namespace XCEngine::Threading; class MyTask : public ITask { public: explicit MyTask(const std::string& name) : m_name(name) {} void Execute() override { std::cout << "Task " << m_name << " executing\n"; } void OnComplete() override { std::cout << "Task " << m_name << " completed\n"; } private: std::string m_name; }; int main() { TaskGroup group; uint64_t task1 = group.AddTask(std::make_unique("Task1")); uint64_t task2 = group.AddTask([]() { std::cout << "Lambda task executing\n"; }, TaskPriority::High); group.AddDependency(task2, task1); group.SetCompleteCallback([]() { std::cout << "All tasks completed!\n"; }); group.Wait(); std::cout << "Progress: " << group.GetProgress() * 100 << "%\n"; return 0; } ``` ## 相关文档 - [ITask](../task/task.md) - 任务接口基类 - [TaskSystem](../task-system/task-system.md) - 任务调度系统