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)
|