cnzdgs:再帮我解决一下问题
昨天那个线程退出问题还是没有解决,我把下载重新做了一下,用了网上的HttpDownload下载类,但是还是不能解决线程退出问题,产生"内存不能为read"的错误,我知道你是高手,麻烦你帮我解决一下
代码如下
CWinThread *g_pMyThr;
BOOL m_blFlag;
BOOL CUpdateDlg::OnInitDialog()
{
CDialog::OnInitDialog();
TE_InitLibrary();
return TRUE;
}
void CUpdateDlg::OnOK()
{
// TODO: Add extra validation here
m_blFlag=true;
g_pMyThr=AfxBeginThread(DownloadThread,(void *)this);
}
UINT CUpdateDlg::DownloadThread(void *pArg)
{
CUpdateDlg *pMainWnd = (CUpdateDlg *)pArg;
while(pMainWnd->m_blFlag)
{
pMainWnd->down.Download("http://www.ienno.com/upfile/user/lzr/1/update/1.exe","d:\\1.exe");
}
return 0;
}
void CUpdateDlg::OnCancel()
{
// TODO: Add extra cleanup here
m_blFlag = FALSE;
tagMSG msg;
while(PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
DispatchMessage(&msg);
if(WAIT_OBJECT_0 == WaitForSingleObject(g_pMyThr->m_hThread, 100))
{
delete g_pMyThr;
g_pMyThr = NULL;
break;
}
}
TE_CleanupLibrary();
}