ros*_*b83 6 c++ windows multithreading function-pointers
在Windows c ++中,以下内容创建一个线程:
CreateThread(NULL, NULL, function, parameter, NULL, &threadID);
Run Code Online (Sandbox Code Playgroud)
这将在新线程中运行"function"并将其作为void*或LPVOID传递给"parameter".
假设我想将两个参数传递给"函数",除了创建包含两个变量的数据结构然后将数据结构转换为LPVOID之外,还有更好的方法吗?
#include <windows.h>
#include <stdio.h>
struct PARAMETERS
{
int i;
int j;
};
DWORD WINAPI SummationThread(void* param)
{
PARAMETERS* params = (PARAMETERS*)param;
printf("Sum of parameters: i + j = \n", params->i + params->j);
return 0;
}
int main()
{
PARAMETERS params;
params.i = 1;
params.j = 1;
HANDLE thdHandle = CreateThread(NULL, 0, SummationThread, ¶ms, 0, NULL);
WaitForSingleObject(thdHandle, INFINITE);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5777 次 |
| 最近记录: |