29 lines
516 B
Markdown
29 lines
516 B
Markdown
|
|
# ITask::Release
|
||
|
|
|
||
|
|
释放一次任务对象引用。
|
||
|
|
|
||
|
|
```cpp
|
||
|
|
void Release();
|
||
|
|
```
|
||
|
|
|
||
|
|
## 行为说明
|
||
|
|
|
||
|
|
当前头文件内联实现会:
|
||
|
|
|
||
|
|
1. 执行 `m_refCount.fetch_sub(1)`
|
||
|
|
2. 如果旧值正好是 `1`,则执行 `delete this`
|
||
|
|
|
||
|
|
## 返回值
|
||
|
|
|
||
|
|
- 无。
|
||
|
|
|
||
|
|
## 注意事项
|
||
|
|
|
||
|
|
- 这是一套侵入式引用计数协议,默认假设对象是 `new` 出来的。
|
||
|
|
- 如果对栈对象调用 `Release()` 并走到 `delete this`,会产生未定义行为。
|
||
|
|
|
||
|
|
## 相关文档
|
||
|
|
|
||
|
|
- [返回类型总览](Task.md)
|
||
|
|
- [AddRef](AddRef.md)
|