# TaskGroup::SetCompleteCallback ```cpp void SetCompleteCallback(Callback&& callback); ``` 设置任务组完成时的回调函数。当所有任务都执行完成后(包括被取消的任务),该回调将被调用。 **参数:** - `callback` - 可调用对象,在所有任务完成后执行 **返回:** 无 **线程安全:** ✅ 线程安全 **示例:** ```cpp #include "XCEngine/Threading/TaskGroup.h" #include "XCEngine/Threading/Task.h" #include using namespace XCEngine::Threading; int main() { TaskGroup group; group.SetCompleteCallback([]() { std::cout << "All tasks have been completed!\n"; }); for (int i = 0; i < 3; ++i) { group.AddTask([i]() { std::cout << "Task " << i << " executing\n"; }); } group.Wait(); std::cout << "Back in main after Wait()\n"; return 0; } ``` ## 相关文档 - [TaskGroup 总览](task-group.md) - 返回类总览 ## 详细描述 `SetCompleteCallback` 方法用于设置当任务组中所有任务都完成时调用的回调函数。回调在最后一个任务完成时触发。 ## 参数 | 参数 | 类型 | 描述 | |------|------|------| | `callback` | `Callback&&` | 回调函数,类型为 `std::function` | ## 返回值 无 ## 示例 ```cpp TaskGroup* group = TaskSystem::Get().CreateTaskGroup(); group->SetCompleteCallback([]() { printf("All tasks in group have completed!\n"); }); for (int i = 0; i < 10; ++i) { group->AddTask([i]() { printf("Task %d completed\n", i); }); } // 等待所有任务完成,回调会被触发 group->Wait(); TaskSystem::Get().DestroyTaskGroup(group); ```