大家都进来看看!!!

xueyanchao 2003-12-31 02:04:44
UINT DownWorker(LPVOID lpParam)
{
::WaitForSingleObject(hEvent1,INFINITE);
nLimit1--;
::SetEvent(hEvent1);

CString strContent;
CString strLine;
CInternetSession session;
CHttpFile *pFile=NULL;

addr tag;
TRACE("\n下面调用Queue.DeQueue(tag)\n");
if(!Queue.DeQueue(tag)) //任务出队
{
TRACE("\n调用Queue.DeQueue(tag)完毕(w)\n");
TRACE("\n线程down结束\n");
::WaitForSingleObject(hEvent1,INFINITE);
nLimit1++;
::SetEvent(hEvent1);
return 2;
}
TRACE("\n调用Queue.DeQueue(tag)完毕(r)\n");

try
{
// 连接到指定URL
pFile = (CHttpFile*) session.OpenURL(tag.strUrl);
}
catch (CMemoryException* pException)
{
// 如果有错误的话,置文件为空
pFile = NULL;
pException->Delete();
::WaitForSingleObject(hEvent1,INFINITE);
nLimit1++;
::SetEvent(hEvent1);
return 1;
}
catch (CInternetException* pException)
{
// 如果有错误的话,置文件为空
pFile = NULL;
pException->Delete();
::WaitForSingleObject(hEvent1,INFINITE);
nLimit1++;
::SetEvent(hEvent1);
return 1;
}
catch(CException *pException)
{
pFile = NULL;
pException->Delete();
::WaitForSingleObject(hEvent1,INFINITE);
nLimit1++;
::SetEvent(hEvent1);
return 1;
}
catch(...)
{
int nError=::GetLastError();
TRACE("\nThe Error num is %d\n",nError);
}
if(pFile!=NULL)
{

while(pFile->ReadString(strLine))
{
strLine+='\n';
strContent+=strLine;
}

// conBuffer.Write(tag.strUrl,tag.strTitle,strContent,tag.nTaskNum,tag.Mark);
TRACE("\n已经存完了\n");
// ::Sleep(20);
pFile->Close();
pFile=NULL;
session.Close();
}

::WaitForSingleObject(hEvent1,INFINITE);
nLimit1++;
::SetEvent(hEvent1);
return 0;
}
我这个线程函数里面有没有内存泄漏,指出者给分。
...全文
29 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
sboom 2004-01-01
  • 打赏
  • 举报
回复
没有。
sboom 2004-01-01
  • 打赏
  • 举报
回复
没有。
sboom 2004-01-01
  • 打赏
  • 举报
回复
没有。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧