首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

线程挂起,跟恢复都不能起到作用,为什么

2012-08-29 
线程挂起,和恢复都不能起到作用,为什么?OnInitDialog函数下添加HThreadAfxBeginThread(ThreadFun,NULL,0,

线程挂起,和恢复都不能起到作用,为什么?
OnInitDialog函数下添加
HThread=AfxBeginThread(ThreadFun,NULL,0,0,CREATE_SUSPENDED,NULL);

C/C++ code
UINT ThreadFun(LPVOID LPARAM){    int Count=0;    char Temp[100];    while(1)    {        if(flag)        {        Count++;        sprintf(Temp,"%d",Count);        SetDlgItemText(AfxGetApp()->m_pMainWnd->m_hWnd,IDC_EDIT1,Temp);        }    }    return 0;}

两个按钮
C/C++ code
void CThreadTestDlg::OnBegin() {    flag=TRUE;    TRACE("Resumethread");    ResumeThread(HThread);}

C/C++ code
void CThreadTestDlg::OnStop() {    flag=FALSE;    SuspendThread(HThread);    }

Hthread的值不为0,是正确的。但是使用挂起线程,也不能挂起。恢复也不能恢复线程(一开始我使用的不是CREATE_SUSPENDED是0,也挂不起)

[解决办法]
你不妨查看一下AfxBeginThread的声明,它的返回值不是HANDLE
用CreateThread吧
[解决办法]
AfxBeginThread返回的是CWinThread*

CWinThread* TS;
TS->m_hThread;
m_hThread才是句柄

热点排行