这是我用来启动线程的方法,但是我觉得这种方式有任何缺点.
void myFunc()
{
//code here
}
unsigned int _stdcall ThreadFunction(void* data)
{
myFunc();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我使用的主要功能:
HANDLE A = (HANDLE)_beginthredex(0,0,&ThreadFunction,0,0,0);
Run Code Online (Sandbox Code Playgroud)
我结束了这个主题CloseHandle(A);.
如果您有权访问C++ 11,请使用该<thread>库,您无需担心跨平台兼容性:
#include <thread>
std::thread t(&ThreadFunction, nullptr);
Run Code Online (Sandbox Code Playgroud)
要等待线程的执行完成,请使用join():
t.join();
Run Code Online (Sandbox Code Playgroud)
这将阻塞,直到线程应该运行的函数返回.
否则,请使用CreateThread(因为它看起来像是在Windows上)或beginthreadex.
对于POSIX,请使用pthread_create().