Files
XCEngine/docs/api/XCEngine/Threading/TaskGroup/Destructor.md

33 lines
1.0 KiB
Markdown
Raw Normal View History

2026-03-26 20:59:59 +08:00
# TaskGroup::~TaskGroup
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
销毁任务组对象。
2026-03-26 16:45:24 +08:00
```cpp
~TaskGroup();
```
2026-03-26 20:59:59 +08:00
## 行为说明
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
当前析构函数是默认实现,不包含额外清理逻辑。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
## 返回值
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
- 无。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
## 当前实现限制
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
- 当前不会释放 [AddTask](AddTask.md) 存入的裸任务指针。
- 如果你通过 `AddTask(std::unique_ptr<ITask>)` 添加了任务,`TaskGroup` 会在添加时 `release()``unique_ptr` 所有权,而析构时又不回收,这会导致泄漏。
- 当前析构也不会自动调用 [Cancel](Cancel.md) 或 [Wait](Wait.md)。
## 使用建议
- 如果任务组来自 [TaskSystem::CreateTaskGroup](../TaskSystem/CreateTaskGroup.md),应通过 [TaskSystem::DestroyTaskGroup](../TaskSystem/DestroyTaskGroup.md) 销毁其外层所有权。
- 但即便如此,当前任务对象自身的所有权问题仍然存在,`DestroyTaskGroup()` 也无法补救 `TaskGroup` 内部已经泄漏的裸指针。
2026-03-26 16:45:24 +08:00
## 相关文档
2026-03-26 20:59:59 +08:00
- [返回类型总览](TaskGroup.md)
- [AddTask](AddTask.md)
- [TaskSystem::DestroyTaskGroup](../TaskSystem/DestroyTaskGroup.md)