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