gpt4 book ai didi

c - 获取线程函数c的参数

转载 作者:行者123 更新时间:2023-11-30 14:57:12 25 4
gpt4 key购买 nike

我正在用 C 语言编写一个程序,其中有一些线程,问题是当我想从线程函数接收参数时。

结构如下:

struct parametro
{
int pl;
};

这是线程函数:

DWORD WINAPI hijo(void *);

DWORD WINAPI hijo(void *p)
{
struct parametro* params = (struct parametro*)p;
printf("\nPosicion %d", params->pl);
}

这是创建线程的代码:

int i;
for(i=0; i<32; i++)
{
struct parametro p;
p.pl = i;
hilo = CreateThread(NULL, 0, &hijo, &p, 0, NULL);
}

它返回这个:

Posicion 3
Posicion 5
Posicion 9
Posicion 15
Posicion 19
Posicion 23
Posicion 27
Posicion 30
Posicion 1
Posicion 1
Posicion 1
Posicion 1
Posicion 1
Posicion 1
Posicion 1
Posicion 1

每次代码运行时的输出都不同。

我怎样才能做到这一点?

最佳答案

您可以创建线程特定变量,为它们分配可以使用的值。例如

struct parametro p[32];

int i;

for(i=0; i<32; i++)
{
p[i].pl = i;
hilo = CreateThread(NULL, 0, &hijo, &p[i], 0, NULL);
}

这将确保每个线程获得一个特定的结构实例,该实例已初始化为所需的值。

关于c - 获取线程函数c的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44079466/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com