# TaskGroup::AddDependency ```cpp void AddDependency(uint64_t taskId, uint64_t dependsOn); ``` 为任务添加依赖关系。指定的任务 `taskId` 将在 `dependsOn` 任务完成后才会开始执行。 **参数:** - `taskId` - 从属任务的 ID - `dependsOn` - 被依赖任务的 ID,taskId 将在此任务完成后才执行 **返回:** 无 **线程安全:** ✅ 线程安全 **示例:** ```cpp #include "XCEngine/Threading/TaskGroup.h" #include "XCEngine/Threading/Task.h" #include #include using namespace XCEngine::Threading; int main() { TaskGroup group; uint64_t loadData = group.AddTask( []() { std::cout << "Loading data...\n"; }, TaskPriority::High ); uint64_t processData = group.AddTask( []() { std::cout << "Processing data...\n"; }, TaskPriority::Normal ); uint64_t saveData = group.AddTask( []() { std::cout << "Saving data...\n"; }, TaskPriority::Low ); group.AddDependency(processData, loadData); group.AddDependency(saveData, processData); std::cout << "Execution order: loadData -> processData -> saveData\n"; group.Wait(); return 0; } ``` ## 相关文档 - [TaskGroup 总览](task-group.md) - 返回类总览 ## 详细描述 `AddDependency` 方法用于设置任务间的依赖关系。`taskId` 指定的任务将等待 `dependsOn` 指定的任务完成后才能开始执行。 依赖关系必须在任务执行前设置,建议在所有任务添加完成后统一设置依赖。 ## 参数 | 参数 | 类型 | 描述 | |------|------|------| | `taskId` | `uint64_t` | 依赖其他任务的任务ID | | `dependsOn` | `uint64_t` | 被依赖的任务ID | ## 返回值 无 ## 示例 ```cpp TaskGroup* group = TaskSystem::Get().CreateTaskGroup(); uint64_t loadData = group->AddTask([]() { /* 加载数据 */ }); uint64_t processData = group->AddTask([]() { /* 处理数据 */ }); uint64_t saveData = group->AddTask([]() { /* 保存数据 */ }); // processData必须在loadData完成后才能执行 group->AddDependency(processData, loadData); // saveData必须在processData完成后才能执行 group->AddDependency(saveData, processData); ```