我正在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)。你真的應該顯示一些你有的代碼和你有問題的地方。 –