Windows系统中createthread函数的用法
时间: 2023-08-30 21:09:09 浏览: 45
`CreateThread`是Windows API中的一个函数,用于创建一个线程并返回线程句柄。它的函数原型如下:
```C++
HANDLE CreateThread(
LPSECURITY_ATTRIBUTES lpThreadAttributes,
SIZE_T dwStackSize,
LPTHREAD_START_ROUTINE lpStartAddress,
LPVOID lpParameter,
DWORD dwCreationFlags,
LPDWORD lpThreadId
);
```
参数说明:
- `lpThreadAttributes`:线程安全属性,默认为NULL。
- `dwStackSize`:线程堆栈大小,如果为0,则默认使用父进程的堆栈大小。
- `lpStartAddress`:线程执行函数的入口地址。
- `lpParameter`:线程执行函数的参数指针。
- `dwCreationFlags`:线程创建的标志,如CREATE_SUSPENDED表示创建后线程挂起。
- `lpThreadId`:线程ID的指针。
例如,以下代码片段创建一个新的线程:
```C++
#include <windows.h>
#include <iostream>
void sayHello(void* data) {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
HANDLE threadHandle;
DWORD threadId;
DWORD exitCode;
// 创建线程
threadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)sayHello, NULL, 0, &threadId);
// 等待线程结束
WaitForSingleObject(threadHandle, INFINITE);
// 获取线程返回值
GetExitCodeThread(threadHandle, &exitCode);
// 关闭线程句柄
CloseHandle(threadHandle);
return 0;
}
```
这段代码创建了一个新的线程,执行函数为`sayHello`,线程参数为`NULL`。线程创建后,等待线程结束,并获取线程返回值,最后关闭线程句柄。