cnzdgs:再帮我解决一下问题

edisonli 2008-07-30 01:27:04
昨天那个线程退出问题还是没有解决,我把下载重新做了一下,用了网上的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();
}
...全文
110 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjx_0_2001 2008-07-31
  • 打赏
  • 举报
回复
cnzdgs 的确有实力

人品也很有实力

Derekfan 2008-07-31
  • 打赏
  • 举报
回复
cnzdgs 厉害
cnzdgs 2008-07-30
  • 打赏
  • 举报
回复
再这样试试:
if (WAIT_TIMEOUT != WaitForSingleObject(hThread, 100))
liumeiqinyang 2008-07-30
  • 打赏
  • 举报
回复
WAIT_OBJECT_0 == WaitForSingleObject(hThread, 100) 应该在线程函数的循环里检查的,在oncancel里设置信号量,你弄反了
edisonli 2008-07-30
  • 打赏
  • 举报
回复
if (WAIT_OBJECT_0 == WaitForSingleObject(hThread, 100))
{
这里面的没有执行
}
edisonli 2008-07-30
  • 打赏
  • 举报
回复
没有死循环啊,我有m_blFlag = FALSE;
stivenjia 2008-07-30
  • 打赏
  • 举报
回复
那肯定的了!

while(1)
{

}了如果不死循环都见鬼了
edisonli 2008-07-30
  • 打赏
  • 举报
回复
没有抱错了,但是线程确没有停止,还是在继续运行
ninehoolu 2008-07-30
  • 打赏
  • 举报
回复
楼上确是是好人,呵呵,无意间路过~
cnzdgs 2008-07-30
  • 打赏
  • 举报
回复
void CUpdateDlg::OnCancel()
{
HANDLE hThread = g_pMyThr->m_hThread;
m_blFlag = FALSE;
while(TRUE)
{
tagMSG msg;
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
if (WAIT_OBJECT_0 == WaitForSingleObject(hThread, 100))
{
g_pMyThr = NULL;
break;
}
}
TE_CleanupLibrary();
}
cnzdgs 2008-07-30
  • 打赏
  • 举报
回复
我不方便调试你的代码,你再这样修改试试:
void CUpdateDlg::OnCancel()
{
m_blFlag = FALSE;
while(TRUE)
{
tagMSG msg;
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
DispatchMessage(&msg);
if (WAIT_OBJECT_0 == WaitForSingleObject(g_pMyThr->m_hThread, 100))
{
g_pMyThr = NULL;
break;
}
}
TE_CleanupLibrary();
}
edisonli 2008-07-30
  • 打赏
  • 举报
回复
cnzdgs:我把源码传到网上,我知道你是好人,你帮我看看吧,谢谢你了
http://www.ienno.com/ienno.rar
edisonli 2008-07-30
  • 打赏
  • 举报
回复
去掉了还是不行
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");
}
AfxMessageBox("退出循环");
return 0;
}
退出的时候“退出循环”这个对话框根本都显不出来就报错了
cnzdgs 2008-07-30
  • 打赏
  • 举报
回复
AfxBeginThread创建的CWinThread对象默认是自动释放的,把delete g_pMyThr去掉。
内容概要:本文围绕“计及P2G厂站的电-气综合能源系统规划研究”展开,基于Matlab代码实现对电能与天然气系统耦合的综合能源系统进行建模与优化规划。研究重点引入了电转气(Power-to-Gas, P2G)技术,通过电解水制氢并将氢气注入天然气管网,实现电力系统与天然气系统的能量双向转换与灵活互动。该方法不仅提升了风电、光伏等间歇性可再生能源的消纳能力,还增强了综合能源系统的灵活性、安全性与低碳化水平。文中构建了包含电力网络、天然气网络及P2G厂站的联合规划模型,综合考虑设备投资成本、运行维护费用、碳排放成本以及不确定性因素的影响,采用优化算法求解最优规划方案,并通过Matlab仿真验证了所提模型的有效性与优越性。; 适合人群:具备一定电力系统或能源系统基础知识,从事综合能源系统、可再生能源消纳、能源互联网等相关领域的科研人员及工程技术人员,尤其适合研究生及以上学历的研究者。; 使用场景及目标:①掌握P2G技术在电-气综合能源系统中的建模方法与作用机制;②学习如何构建电-气耦合系统的协同优化规划模型;③实现对含高比例可再生能源的综合能源系统进行低碳、经济、可靠的规划与仿真分析;④为撰写硕士论文、科研项目申报或工程应用提供理论支持与代码参考。; 阅读建议:此资源以硕士论文复现为核心目标,提供了完整的Matlab代码实现,建议读者结合相关理论文献深入理解模型构建过程,重点关注P2G厂站的数学建模、两网耦合约束处理以及优化求解策略,并动手运行和调试代码以加深理解。
【重要提示】本资源设置为0积分下载,若非0积分请勿轻易下载 亲爱的CSDN用户: 首先感谢你点进这个资源页面。我需要提前说明一个重要情况: 本资源原本已设置为“0积分下载”,即作者希望完全免费共享。但CSDN平台有时会根据文件的下载热度、文件大小、用户权限等因素,自动将部分资源的积分调整为非0数值(如1积分、2积分、5积分等)。这是平台系统的自动行为,而非作者本人的设定。 因此,如果你当前看到该资源的下载所需积分不是0(例如显示为1、2、3……),请谨慎决定是否下载。 如果你按照非0积分支付并下载后发现资源内容不符合预期、链接失效,或者实际上该资源本应是免费的,作者无法为此承担积分损失或退还操作。强烈建议:仅在页面显示为0积分时进行下载。 另外,本资源描述中并未直接提供具体的下载地址或外部链接,因为它本身是一个通过CSDN官方上传通道提交的文件/内容包。如果你看到描述中没有外部网盘地址,这是正常的——资源文件应通过CSDN内置的“下载”按钮获取。若因平台积分显示异常导致你支付了积分,请优先联系CSDN客服咨询积分退还政策,作者没有权限修改平台自动设定的积分值。 感谢你的理解与支持。技术分享本应开放,但受限于平台规则,特此提醒如上。祝学习进步!

15,466

社区成员

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

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