Files
XCEngine/docs/api/XCEngine/Threading/TaskSystem/Initialize.md

40 lines
1.2 KiB
Markdown
Raw Normal View History

2026-03-26 16:45:24 +08:00
# TaskSystem::Initialize
2026-03-26 20:59:59 +08:00
初始化任务系统并创建工作线程。
2026-03-26 16:45:24 +08:00
```cpp
void Initialize(const TaskSystemConfig& config);
```
2026-03-26 20:59:59 +08:00
## 行为说明
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
1.`config.workerThreadCount` 读取目标线程数。
2. 当该值为 `0` 时,退回到 `std::thread::hardware_concurrency()`
3. 若仍为 `0`,最终使用 `2`
4.`m_running` 设为 `true`
5. 启动对应数量的 `std::thread`,每个线程执行内部 `WorkerThread()` 循环。
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
- `config` - 任务系统初始化配置。
2026-03-26 16:45:24 +08:00
2026-03-26 20:59:59 +08:00
## 返回值
- 无。
## 当前实现限制
- 当前只真正使用 `workerThreadCount`,其余配置字段都会被忽略。
- 当前没有防止重复初始化的保护;多次调用会继续往 `m_workerThreads` 里追加线程。
- 当前不会把 `m_shutdown` 重置回 `false`,因此一旦执行过 [Shutdown](Shutdown.md),再次 `Initialize()` 的行为是不完整的。
- 当前不会清空历史队列或主线程回调队列。
- 当前不会给工作线程命名,也没有线程绑定、栈大小或亲和性设置。
2026-03-26 16:45:24 +08:00
## 相关文档
2026-03-26 20:59:59 +08:00
- [返回类型总览](TaskSystem.md)
- [TaskSystemConfig](../TaskSystemConfig/TaskSystemConfig.md)
- [Shutdown](Shutdown.md)