37 lines
939 B
Markdown
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)
|