首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

循环用CreateThread创建多线程的传参有关问题

2013-07-08 
循环用CreateThread创建多线程的传参问题我本来打算给第一个创建的线程传入1,第二个创建的线程传入2于是我

循环用CreateThread创建多线程的传参问题
我本来打算给第一个创建的线程传入1,第二个创建的线程传入2

于是我就这样写
主函数循环创建线程

for (i=1;i<=5;i++)
{
hThread[i-1] = CreateThread(NULL,0,FileThread,&i,0,NULL);
}

子线程中直接打印出传入的参数

结果全部打印6

我调试了一下,是因为CreateThread传入的参数是一个地址, CreateThread创建子线程速度快

所以子线程读取地址中的值的时候i已经自加到6了

问怎么才能用循环实现第一个创建的线程传入1,第二个创建的线程传入2 多线程 CreateThread 传参
[解决办法]
这样,不就行了

for (i=1;i<=5;i++)
{
hThread[i-1] = CreateThread(NULL,0,FileThread,i,0,NULL);
}

热点排行