如何实现线程函数CreateThread传参
时间: 2023-05-24 07:02:44 浏览: 269
CreateThread函数创建窗口线程.rar_createthread_线程 窗口_线程函数
A:可以通过传递参数指针来实现线程函数CreateThread传参。具体步骤如下:
1. 定义一个结构体,结构体中包含传递给线程函数的参数。
2. 在主线程中创建一个结构体实例,并将实例指针作为参数传递给CreateThread函数。
3. 在线程函数中,通过将参数指针转换为结构体指针来获取传递的参数。
示例代码如下:
```
#include <windows.h>
#include <stdio.h>
struct ThreadParam {
int arg1;
char arg2[64];
};
DWORD WINAPI threadProc(LPVOID lpParam) {
ThreadParam* pParam = (ThreadParam*)lpParam;
printf("arg1: %d, arg2: %s\n", pParam->arg1, pParam->arg2);
return 0;
}
int main() {
ThreadParam param = { 123, "hello world" };
HANDLE hThread = CreateThread(NULL, 0, threadProc, ¶m, 0, NULL);
if (hThread == NULL) {
printf("CreateThread failed: %d\n", GetLastError());
return 1;
}
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
return 0;
}
```
阅读全文