unsigned int __stdcall myThreadFun(LPVOID lpParameter)
{
for(int i=0;i<10;i++)
{
printf("%d\n", 2);
Sleep(1000);
}
return 0;
}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
for(int i=0;i<5;i++)
{
HANDLE myHH = (HANDLE)_beginthreadex(NULL, 0, myThreadFun, NULL, 0, 0);
CloseHandle(myHH);
printf("myHH:%d\n", myHH);
Sleep(1000*2);
} getchar();
return 0;
}这段代码在运行后内核对象的计数只会增加,不会减少。但是如果修改成unsigned int __stdcall myThreadFun(LPVOID lpParameter)
{
// for(int i=0;i<10;i++)
// {
// printf("%d\n", 2);
// Sleep(1000);
// }
printf("%d\n", 2);
return 0;
}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
for(int i=0;i<5;i++)
{
HANDLE myHH = (HANDLE)_beginthreadex(NULL, 0, myThreadFun, NULL, 0, 0);
CloseHandle(myHH);
printf("myHH:%d\n", myHH);
Sleep(1000*2);
} getchar();
return 0;
}就没有问题了。
像这样对于第一种情况,一个有循环操作的线程,如何再完成线程以后有效的关闭内核对象呢?
(不能用WaitForSingleObject等待结束,因为同一时间还需要其他的操作)
解决方案 »
- 怎么用VC创建一个FTP服务器?
- MFC 怎样在自定义的空间中加入系统提供的控件
- 求助:用mfc编写一个软件
- f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c
- 在Cformview中用了CList_box怎么来获得焦点
- 如何在 ComboBox 中快速插入大量数据?
- 简单多线成问题!!
- 帮公司找人,深圳一家公司需要招一个wince下evc开发的人,只要有2年以上VC开发经验即可
- 请教各位大侠,当我的程序(release版,静态链接)达到450kb左右时,vc6在编辑时的类成员自动列表提示就不灵了,请教如何避免!谢谢!
- 要在对话框完全显示之后在执行下一段程序,代码放置在哪最好?
- 请VC高手给程序加几个功能 代码都有 十万火急!!!搞定了重金酬谢
- 程序员或者搞it的哥们,会玩星际的进qq群21682942切磋。
HANDLE hThreads[5] = {NULL};
for(int i=0;i<5;i++)
{
hThreads[i] = (HANDLE)_beginthreadex(NULL, 0, myThreadFun, NULL, 0, 0);
//CloseHandle(myHH);
printf("myHH:%d\n", myHH);
Sleep(1000*2);
}
WaitForMultipleObjects(5, hThreads, TRUE);
for(int i=0;i<5;i++)
{
CloseHandle(hThreads[i]);
}
unsigned int __stdcall myThreadFun(LPVOID lpParameter)
{
for(int i=0;i<10;i++)
{
printf("%d\n", 2);
Sleep(1000);
}
return 0;
}int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
for(int i=0;i<5;i++)
{
HANDLE myHH = (HANDLE)_beginthreadex(NULL, 0, myThreadFun, NULL, 0, 0);
CloseHandle(myHH);
printf("myHH:%d\n", myHH);
Sleep(1000*2);
} getchar();
return 0;
}
这段代码在运行后内核对象的计数只会增加,不会减少。但是如果修改成
===============================
你怎么知道只会增加不会减少呢?CloseHandle调用了应该会减少计数的。
线程的创建是根据数据来的,所以不能一次性全都创建出来wltg2001:
可以通过工具查看的