Files
XCEngine/docs/api/XCEngine/Threading/LambdaTask/LambdaTask.md

34 lines
1.1 KiB
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# LambdaTask
**命名空间**: `XCEngine::Threading`
2026-03-26 20:59:59 +08:00
**类型**: `class template`
2026-03-26 16:45:24 +08:00
**头文件**: `XCEngine/Threading/LambdaTask.h`
2026-03-26 20:59:59 +08:00
**描述**: 把任意可调用对象包装成 `ITask` 的模板适配器。
2026-03-26 16:45:24 +08:00
## 概述
2026-03-26 20:59:59 +08:00
`LambdaTask<Func>` 是最轻量的任务实现之一:它不额外引入调度语义,只负责保存一个可调用对象,并在 [Execute](Execute.md) 中直接执行它。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
这类模板任务在商业引擎里很常见,因为上层常常想直接把一段 lambda 提交给任务系统,而不是每次都手写一个派生类。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
## 当前实现边界
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
- 可调用对象按值保存在 `m_func` 中。
- [Execute](Execute.md) 不做异常处理;异常会交给调用它的调度器决定怎么处理。
- 当前模板没有覆盖 `OnComplete()` / `OnCancel()`,因此沿用 `ITask` 基类默认空实现。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
## 公开方法
| 方法 | 说明 |
2026-03-26 16:45:24 +08:00
|------|------|
2026-03-26 20:59:59 +08:00
| [Constructor](Constructor.md) | 构造 lambda 任务。 |
| [Execute](Execute.md) | 执行保存的可调用对象。 |
2026-03-26 16:45:24 +08:00
## 相关文档
2026-03-26 20:59:59 +08:00
- [当前模块](../Threading.md)
- [ITask](../Task/Task.md)