docs: rebuild Threading API content
This commit is contained in:
@@ -1,29 +1,32 @@
|
||||
# TaskGroup::~TaskGroup()
|
||||
# TaskGroup::~TaskGroup
|
||||
|
||||
销毁对象并释放相关资源。
|
||||
销毁任务组对象。
|
||||
|
||||
```cpp
|
||||
~TaskGroup();
|
||||
```
|
||||
|
||||
该方法声明于 `XCEngine/Threading/TaskGroup.h`,当前页面用于固定 `TaskGroup` 类目录下的方法级 canonical 路径。
|
||||
## 行为说明
|
||||
|
||||
**参数:** 无。
|
||||
当前析构函数是默认实现,不包含额外清理逻辑。
|
||||
|
||||
**返回:** `void` - 无返回值。
|
||||
## 返回值
|
||||
|
||||
**示例:**
|
||||
- 无。
|
||||
|
||||
```cpp
|
||||
#include <XCEngine/Threading/TaskGroup.h>
|
||||
## 当前实现限制
|
||||
|
||||
void Example() {
|
||||
XCEngine::Threading::TaskGroup object;
|
||||
// 对象离开作用域时会自动触发析构。
|
||||
}
|
||||
```
|
||||
- 当前不会释放 [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` 内部已经泄漏的裸指针。
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [返回类总览](TaskGroup.md)
|
||||
- [返回模块目录](../Threading.md)
|
||||
- [返回类型总览](TaskGroup.md)
|
||||
- [AddTask](AddTask.md)
|
||||
- [TaskSystem::DestroyTaskGroup](../TaskSystem/DestroyTaskGroup.md)
|
||||
|
||||
Reference in New Issue
Block a user