-

- 加为好友
- 发送私信
- 在线聊天
-
zgl88161104
- 等级:

- 可用分等级:
- 总技术分:
- 总技术分排名:
- 结帖率:
|
| 发表于:2008-08-20 15:32:55 楼主 |
我创建1000个线程,想要确定1000个线程和时结束 但是waitformultiobjects.但是他只是等待64个对象, 所以我写了下面的代码: int time_64 ; int j; int i ; //根据重复的次数来创建线程,默认的堆栈1M for(i = 0 ;i <times ;i++) { Handle[i] = CreateThread(NULL,0, ThreadCreate3,(LPVOID)&MyThreadInfo,0,&ThreadID); } time_64 = i/64 ; pHandle = Handle ; //由于每次只能等待64个对象,循环等待所有的进程结束 for( j = 0; j <time_64 ;j++) { ::WaitForMultipleObjects( 64 ,pHandle ,TRUE ,INFINITE); pHandle = pHandle +64*sizeof(HANDLE) ; } ::WaitForMultipleObjects( times -j*64 ,pHandle ,TRUE ,INFINITE); 但是我感觉有错误的,因为线程结束是没有顺序的,可能63个线程最后结束,那么第一个循环没有结束下面的进行不了,也是说waitformultiobjects等待了已经结束线程,回出现什么情况呢?该怎么样修改呢? |
|
|
|
0
修改
删除
举报
引用
回复
| |