MFC中如何通过点击主程序的stop按钮来终止子线程?

[复制链接]
查看11 | 回复1 | 2016-3-18 10:55:35 | 显示全部楼层 |阅读模式
线程函数是:
UINT ThreadRun(LPVOID pParam)
{
        ………………………………
        while(1)
        {
                ………………………………
        }
        return 0;
}
然后Run按钮运行线程:
void CGetNetDlg::OnButtonRun()
{
        ………………………………
        AfxBeginThread(ThreadRun,this);
        ………………………………
}
我想在按下stop后终止线程……Stop按钮的代码如何编写?
void CMyDlg::OnButtonStop()
{
        // TODO: Add your control notification handler code here
}

回复

使用道具 举报

千问 | 2016-3-18 10:55:35 | 显示全部楼层
需要改动一下上面的程序,在调用AfxBeginThread时把此函数返回的CWinThread*变量保存起来,比如定义一个类成员变量CWinThread* m_pThread,调用AfxBeginThread的代码改成m_pThread= AfxBeginThread(ThreadRun,this);。而Stop里的代码可以写成:DWORD dwCode;GetExitCodeThread(m_pThread->m_hThread, &dwCode);TerminateThread(m_pThread->m_hThread, dwCode);CloseHandle(m_pThread->m_hThread);...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行