Files
XCEngine/docs/api/XCEngine/Threading/Thread/Start.md

37 lines
939 B
Markdown

# Thread::Start
启动一个新线程。
```cpp
template<typename Func>
void Start(Func&& func, const Containers::String& name = "Thread");
```
## 行为说明
当前模板实现会:
1.`m_name = name`
2. 执行 `m_thread = std::thread(std::forward<Func>(func))`
3.`m_thread.native_handle()` 转成整数,写入 `m_id`
## 参数
- `func` - 线程入口函数或可调用对象。
- `name` - 保存在线程包装对象中的名称;默认值为 `"Thread"`
## 返回值
- 无。
## 当前实现限制
- 名称只保存在 `m_name`,不会设置到操作系统线程名。
- `m_id` 是从 `native_handle()` 转换而来的缓存值,不保证跨平台可移植,也不保证与 [GetCurrentId](GetCurrentId.md) 一致。
- 如果对一个仍然 `joinable` 的线程对象再次调用 `Start()`,会触发 `std::thread` 的终止语义。
## 相关文档
- [返回类型总览](Thread.md)
- [GetId](GetId.md)