Files
XCEngine/docs/api/threading/lambdatask/lambdatask.md
ssdfasd 7dd7858ef2 docs: fix threading module documentation discrepancies
- Fix SpinLock docs: clarify lock()/unlock()/try_lock() are non-const
  (matching source implementation in SpinLock.h)
- Add missing LambdaTask::Execute() method to inherited methods table
- Update TaskGroup::Wait() docs: clarify m_pendingCount never decrements
  causing indefinite block even after all tasks complete (not just
  unexecuted tasks)
- Update TaskGroup::IsComplete() docs: document same m_pendingCount
  issue causing incorrect return values
2026-03-19 01:03:14 +08:00

58 lines
1.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# LambdaTask
**命名空间**: `XCEngine::Threading`
**类型**: `class` (template)
**头文件**: `XCEngine/Threading/LambdaTask.h`
**描述**: Lambda 任务封装模板类,允许使用 lambda 表达式创建任务,无需继承 ITask。
## 概述
`LambdaTask<Func>` 是一个模板封装类将任意可调用对象lambda、函数指针、std::function包装为 `ITask`。这大大简化了简短任务的创建。
## 模板参数
| 参数 | 描述 |
|------|------|
| `Func` | 可调用对象类型 |
## 构造方法
| 方法 | 描述 |
|------|------|
| [`LambdaTask`](constructor.md) | 构造 Lambda 任务 |
## 继承方法
| 方法 | 描述 |
|------|------|
| `Execute()` | 执行封装的可调用对象(继承自 ITask可重写 |
## 使用示例
```cpp
// 使用 lambda 创建任务
TaskSystem::Get().Submit(
std::make_unique<LambdaTask<std::function<void()>>>(
[]() {
printf("Hello from task!\n");
},
TaskPriority::Normal
)
);
// 或者直接使用 Submit 的便捷重载
TaskSystem::Get().Submit([]() {
printf("Direct lambda task!\n");
});
```
## 相关文档
- [ITask](../task/task.md) - 任务基类
- [TaskGroup](../task-group/task-group.md) - 任务组
- [TaskSystem](../task-system/task-system.md) - 任务系统
- [../threading/threading.md](../threading.md) - 模块总览