BeginThreadEx
是 Windows API 函數(shù),用于創(chuàng)建一個新的線程。要管理線程生命周期,您需要遵循以下步驟:
DWORD WINAPI
簽名,并返回一個 DWORD
值。DWORD WINAPI ThreadFunction(LPVOID lpParam);
BeginThreadEx
:在主線程中,調(diào)用 BeginThreadEx
函數(shù)以創(chuàng)建新線程。傳遞線程函數(shù)的地址、傳遞給線程的任何參數(shù)以及一個指向 DWORD
類型變量的指針,該變量將存儲線程的退出代碼。HANDLE hThread = BeginThreadEx(NULL, 0, ThreadFunction, NULL, CREATE_SUSPENDED, &threadId);
ResumeThread
函數(shù)恢復(fù)新線程的執(zhí)行。ResumeThread(hThread);
WaitForSingleObject
或 WaitForMultipleObjects
函數(shù)等待線程完成執(zhí)行。WaitForSingleObject(hThread, INFINITE);
CloseHandle
函數(shù)關(guān)閉線程句柄。CloseHandle(hThread);
BeginThreadEx
時,檢查返回值是否為 NULL
,表示創(chuàng)建線程失敗。通過遵循這些步驟,您可以有效地管理線程生命周期,包括創(chuàng)建、執(zhí)行、同步和清理。