64,648
社区成员
发帖
与我相关
我的任务
分享
void DownloadFile (LPCTSTR strFileURL, int nPriority=THREAD_PRIORITY_IDLE)
{
if (!lstrlen(strFileURL))
return;
HANDLE h = m_ThreadTab.Second_to_First(strFileURL, NULL) ;
if (h)
{
if (::WaitForSingleObject(h,0) == WAIT_TIMEOUT) // downloading now
{
// ASSERT(FALSE);
return ;
}
else
{
m_ThreadTab.RemoveElement (h, strFileURL) ; // remove
::CloseHandle (h) ;
}
}
DWORD _i ;
PARA_DATA * pPara = new PARA_DATA ;
pPara->pThis = this ;
pPara->strFileURL = strFileURL ;
h = ::CreateThread (NULL, 0, __uis_DownloadFile, pPara, CREATE_SUSPENDED, &_i);
ASSERT(h);
m_ThreadTab.AddElement (h, strFileURL);
::SetThreadPriority (h, nPriority) ;
::ResumeThread (h) ;
}