| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:线程为什么暂停了
只看楼主 加入收藏
WebKiller
Rank: 2
等 级:论坛游民
帖 子:11
专家分:77
注 册:2015-1-10
结帖率:100%
收藏
 问题点数:0 回复次数:1 
线程为什么暂停了
图片附件: 游客没有浏览图片的权限,请 登录注册

如图为什么 线程执行到这一步,然后我点停止按钮,主线程就卡在WaitForSingleObject就没响应了

程序代码:
void CTskCoolCardDlg::OnBtnstop() 
{
    // TODO: Add your control notification handler code here
    if(m_hThread)
    {
        ResumeThread(m_hThread);
        InterlockedExchange((long*)&s_bStart,FALSE); //s_bStart设为false让线程退出死循环返回0
        WaitForSingleObject(m_hThread,INFINITE);
        CloseHandle(m_hThread);
        m_hThread = NULL;
        MessageBox(_T("线程关闭成功"));
    }
}

程序代码:
else
        {
            s_pCtl->SetWindowText(_T("关闭所有端口,等待1秒"));
            OnClickStartOrStopBtn(hwnd,FALSE);
            Sleep(1000);
            s_pCtl->SetWindowText(_T("开启所有端口,等待8秒"));
            OnClickStartOrStopBtn(hwnd,TRUE);
            Sleep(8000);
        }
    }
    if(10 == i)
    {
        AfxMessageBox("开启十连败,请手动调整机器");
        return FALSE;
    }
    s_pCtl->SetWindowText(_T("所有端口开启成功"));
2015-02-02 12:10
WebKiller
Rank: 2
等 级:论坛游民
帖 子:11
专家分:77
注 册:2015-1-10
收藏
得分:0 
此帖已解决,因为消息的原因,我后来又开了个线程用于等待结束线程
2015-02-04 11:19
快速回复:线程为什么暂停了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011464 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved