docs: update memory and threading API docs
This commit is contained in:
82
docs/api/threading/task-group/set-complete-callback.md
Normal file
82
docs/api/threading/task-group/set-complete-callback.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# TaskGroup::SetCompleteCallback
|
||||
|
||||
```cpp
|
||||
void SetCompleteCallback(Callback&& callback);
|
||||
```
|
||||
|
||||
设置任务组完成时的回调函数。当所有任务都执行完成后(包括被取消的任务),该回调将被调用。
|
||||
|
||||
**参数:**
|
||||
- `callback` - 可调用对象,在所有任务完成后执行
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ✅ 线程安全
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include "XCEngine/Threading/TaskGroup.h"
|
||||
#include "XCEngine/Threading/Task.h"
|
||||
#include <iostream>
|
||||
|
||||
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<void()>` |
|
||||
|
||||
## 返回值
|
||||
|
||||
无
|
||||
|
||||
## 示例
|
||||
|
||||
```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);
|
||||
```
|
||||
Reference in New Issue
Block a user