Files
XCEngine/docs/api/threading/thread/detach.md

1.1 KiB

Thread::Detach

void Detach();

分离线程,使其在后台独立运行。调用 Detach() 后,线程不再受 Thread 对象管理,其生命周期由 C++ 运行时库自行管理,直到线程函数执行完毕。

分离后的线程成为"守护线程",其资源在线程结束时自动由运行时回收。与 Join() 不同,Detach() 只能调用一次。

警告: 分离线程时必须确保其访问的所有数据在线程运行期间保持有效。分离后无法通过 Thread 对象同步或等待线程。

参数:

返回:

线程安全:

示例:

#include "XCEngine/Threading/Thread.h"
#include <iostream>

using namespace XCEngine::Threading;

int main() {
    Thread t;
    t.Start([]() {
        for (int i = 0; i < 3; ++i) {
            std::cout << "Detached thread running: " << i << std::endl;
            Thread::Sleep(50);
        }
    }, "DetachedThread");
    
    std::cout << "Thread detached, main continues..." << std::endl;
    t.Detach();
    
    Thread::Sleep(200);
    return 0;
}

相关文档