nRecv = ::recv(sktclt, buffS, 8096, 0);
if(nRecv > 0)
{
CreateThread(..BB...)................
}
线程函数:BB
{
。。
ExitThread(0);
return ;
}当接收到数据后,我就创建一个线程来处理,当线程执行完后,执行ExitThread(0); 自动释放资源,为什么,当CreateThread上千个时,内存剧增,为什么不能达到自动释放,高人请指点,俺是新手,最好能举个例呀,谢谢
if(nRecv > 0)
{
CreateThread(..BB...)................
}
线程函数:BB
{
。。
ExitThread(0);
return ;
}当接收到数据后,我就创建一个线程来处理,当线程执行完后,执行ExitThread(0); 自动释放资源,为什么,当CreateThread上千个时,内存剧增,为什么不能达到自动释放,高人请指点,俺是新手,最好能举个例呀,谢谢
解决方案 »
- 弱弱地问一下 ATL\AxtiveX\COM 之间的关系?
- 什么情况下会用到CoInitializeEx(NULL, COINIT_MULTITHREADED)?
- 什么控件可以中显示多帧图像
- 请问如何了解程序框架,运行机制?
- 关于COM的LocalServer,如果Client非正常结束的清理如何做
- 请教:如何向打印机发送控制命令?
- 请教高手,一个DCOM程序的编译错误。
- 我的一个小程序在debug版本中用着没事,在release中高4位低4位却翻个了。不明白是怎么回事。
- 请看中国的学术腐败!
- MDI窗口的拆分问题
- 在MFC中使用多线程从摄像头读取数据 没有任何图像
- 菜鸟发问~求解答 关于socket的各种问题,以及多线程
自动回释放线程相关的资源
应该是你在线程中创建的其他的资源没有释放
TCP通信代码可参看
http://blog.csdn.net/wangyao1052/article/details/8110405
另外,应该将线程句柄保存起来,最后不要忘了CloseHandle.
程序员不要总是想着让系统自动释放资源,有些资源需要你手工来释放