CreateThread用法
时间: 2023-09-08 19:11:33 浏览: 96
create thread用法
CreateThread是Windows API中的一个函数,用于创建一个新的线程。它的用法如下:
```c++
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
```
参数说明:
- `lpThreadAttributes`:指向SECURITY_ATTRIBUTES结构体的指针,用于设置新线程的安全属性,一般为NULL。
- `dwStackSize`:指定新线程的栈空间大小,一般为0。
- `lpStartAddress`:指向线程函数的指针,新线程会从这个函数开始执行。
- `lpParameter`:传递给线程函数的参数。
- `dwCreationFlags`:指定线程的创建标志,一般为0。
- `lpThreadId`:指向一个DWORD变量的指针,用于存储新线程的ID。
注意事项:
- 线程函数的返回值类型必须为DWORD,表示线程的退出码。
- 在使用CreateThread创建的新线程中,需要调用CloseHandle函数来关闭线程句柄。
示例代码:
```c++
#include <Windows.h>
#include <iostream>
using namespace std;
DWORD WINAPI MyThread(LPVOID lpParam) {
int nCount = *(int*)lpParam; // 获取传入的参数
for (int i = 0; i < nCount; i++) {
cout << "Thread running: " << i << endl;
Sleep(1000); // 线程休眠1秒
}
return 0;
}
int main() {
int nCount = 5;
HANDLE hThread = CreateThread(NULL, 0, MyThread, &nCount, 0, NULL); // 创建新线程
if (hThread == NULL) {
cout << "Failed to create thread!" << endl;
return 1;
}
// 等待线程结束
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread); // 关闭线程句柄
return 0;
}
```
阅读全文