我正在C++ DLL模块中工作,我需要为每个X min独立执行一个任务。我试图为该任务创建一个线程,但是创建线程的主程序也将一直等待子线程完成。在C++中创建一个独立于父代的子线程
是否有人可以帮助我如何独立于主程序创建单独的过程(请提供示例代码,如果可能的话)并执行任务? 该过程应该执行一个函数,并为每个X min运行函数中存在的代码。
编辑:直到线程完成
void test(void *param)
{
cout << "In thread function" << endl;
Sleep(1000); // sleep for 1 second
cout << "Thread function ends" << endl;
_endthread();
}
int main()
{
HANDLE hThread;
cout << "Starting thread" << endl;
cout << (hThread = (HANDLE)_beginthread(test,0,NULL));
WaitForSingleObject(hThread, INFINITE);
cout << "Main ends" << endl;
return 0;
}
'CreateThread()'和'beginthreadex()'不要等待线程完成。他们返回一个可用于等待线程完成的句柄。 – hmjd
首先显示你的代码 - 例如启动新线程的代码。 – kuperspb
通常创建线程并不意味着创建线程需要等待它们完成(这就是线程的全部内容!!)。如果你的意思是你的主进程不应该等待退出,你需要创建一个独立运行的子进程( - > fork/exec)。你真的应该显示一些你有的代码和你有问题的地方。 –