如何使用函数创建线程:C++

ale*_*194 0 c++ multithreading visual-c++

我正在尝试通过函数使用 C++ 的标准库创建线程。

#include <iostream>
#include <thread>
using namespace std;

void print()
{
    printf("PRINT\n");
    printf("PRINT2\n");
}

void createThread() 
{
    thread newThread(print);
}

int main()
{
    createThread();
    cin.get();
}

Run Code Online (Sandbox Code Playgroud)

程序编译并运行,但一旦线程完成,它就会创建一个“调试错误”。有什么想法吗?

Sid*_*d S 5

问题是您的线程对象在调用其detach()join()成员之前超出了范围。

尝试这个:

int main()
{
    thread newThread(print);
    ...
    newThread.join();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)