# TaskGroup::AddTask ```cpp uint64_t AddTask(std::unique_ptr task); uint64_t AddTask(Callback&& func, TaskPriority priority = TaskPriority::Normal); ``` 将任务添加到任务组。支持两种添加方式:传入 ITask 对象或传入回调函数。 **参数:** - `task` - 唯一指针管理的 ITask 对象 - `func` - 要执行的回调函数 - `priority` - 任务优先级,默认为 `TaskPriority::Normal` **返回:** 返回分配的任务 ID,可用于设置依赖关系 **线程安全:** ✅ 线程安全 **复杂度:** O(1) **示例:** ```cpp #include "XCEngine/Threading/TaskGroup.h" #include "XCEngine/Threading/Task.h" #include #include using namespace XCEngine::Threading; class MyTask : public ITask { public: explicit MyTask(const std::string& name) : m_name(name) {} void Execute() override { std::cout << "Executing: " << m_name << "\n"; } private: std::string m_name; }; int main() { TaskGroup group; auto task = std::make_unique("DataLoading"); uint64_t taskId = group.AddTask(std::move(task)); uint64_t callbackId = group.AddTask([]() { std::cout << "Lambda task executing\n"; }, TaskPriority::High); group.AddDependency(callbackId, taskId); group.Wait(); return 0; } ``` ## 相关文档 - [TaskGroup 总览](task-group.md) - 返回类总览