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

939 B

Thread::Start

启动一个新线程。

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 一致。
  • 如果对一个仍然 joinable 的线程对象再次调用 Start(),会触发 std::thread 的终止语义。

相关文档