BeginThreadEx
是 Windows API 函数,用于创建一个新的线程。要管理线程生命周期,您需要遵循以下步骤:
- 定义线程函数:首先,您需要定义一个线程函数,该函数将在新线程中执行。这个函数应该具有
DWORD WINAPI
签名,并返回一个DWORD
值。
DWORD WINAPI ThreadFunction(LPVOID lpParam);
- 调用
BeginThreadEx
:在主线程中,调用BeginThreadEx
函数以创建新线程。传递线程函数的地址、传递给线程的任何参数以及一个指向DWORD
类型变量的指针,该变量将存储线程的退出代码。
HANDLE hThread = BeginThreadEx(NULL, 0, ThreadFunction, NULL, CREATE_SUSPENDED, &threadId);
- 控制线程执行:使用
ResumeThread
函数恢复新线程的执行。
ResumeThread(hThread);
- 等待线程完成:使用
WaitForSingleObject
或WaitForMultipleObjects
函数等待线程完成执行。
WaitForSingleObject(hThread, INFINITE);
- 清理线程资源:在主线程中,使用
CloseHandle
函数关闭线程句柄。
CloseHandle(hThread);
- 错误处理:在整个过程中检查函数的返回值,以确定操作是否成功。例如,在调用
BeginThreadEx
时,检查返回值是否为NULL
,表示创建线程失败。
通过遵循这些步骤,您可以有效地管理线程生命周期,包括创建、执行、同步和清理。