docs: update memory and threading API docs

This commit is contained in:
2026-03-20 02:35:24 +08:00
parent c5b17239ca
commit fd792b7df1
103 changed files with 2485 additions and 673 deletions

View File

@@ -0,0 +1,62 @@
# TaskGroup::AddTask
```cpp
uint64_t AddTask(std::unique_ptr<ITask> task);
uint64_t AddTask(Callback&& func, TaskPriority priority = TaskPriority::Normal);
```
将任务添加到任务组。支持两种添加方式:传入 ITask 对象或传入回调函数。
**参数:**
- `task` - 唯一指针管理的 ITask 对象
- `func` - 要执行的回调函数
- `priority` - 任务优先级,默认为 `TaskPriority::Normal`
**返回:** 返回分配的任务 ID可用于设置依赖关系
**线程安全:** ✅ 线程安全
**复杂度:** O(1)
**示例:**
```cpp
#include "XCEngine/Threading/TaskGroup.h"
#include "XCEngine/Threading/Task.h"
#include <iostream>
#include <memory>
using namespace XCEngine::Threading;
class MyTask : public ITask {
public:
explicit MyTask(const std::string& name) : m_name(name) {}
void Execute() override {
std::cout << "Executing: " << m_name << "\n";
}
private:
std::string m_name;
};
int main() {
TaskGroup group;
auto task = std::make_unique<MyTask>("DataLoading");
uint64_t taskId = group.AddTask(std::move(task));
uint64_t callbackId = group.AddTask([]() {
std::cout << "Lambda task executing\n";
}, TaskPriority::High);
group.AddDependency(callbackId, taskId);
group.Wait();
return 0;
}
```
## 相关文档
- [TaskGroup 总览](task-group.md) - 返回类总览