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

线程函数有关问题

2012-05-21 
线程函数问题描述:MFC对话框工程,想用一个Edit控件实时显示线程函数中某个变量的实时值。下面是个Demo代码:

线程函数问题
描述:
MFC对话框工程,想用一个Edit控件实时显示线程函数中某个变量的实时值。
下面是个Demo代码:

C/C++ code
void CThreadTestDlg::OnButton1()//启动线程 {    // TODO: Add your control notification handler code here    DWORD ThreadId;      handleThread=::CreateThread(NULL,0,TestThreadProc,this,0,&ThreadId);}void CThreadTestDlg::OnButton2()//关闭线程{    // TODO: Add your control notification handler code here    TerminateThread(handleThread,0);}DWORD WINAPI CThreadTestDlg::TestThreadProc(LPVOID lParam){    CThreadTestDlg *mainDlg=(CThreadTestDlg*)lParam;    int iMsg=0;    for (int i=0;i<65536;i++)    {        iMsg++;        mainDlg->OnShowMsg(iMsg);    }    return 0;}void CThreadTestDlg::OnShowMsg(int iMsg){    m_strMsg.Format("%d",iMsg);//m_strMsg为Edit控件绑定变量    UpdateData(FALSE);}

UpdateData(FALSE);到这里程序就中断了,希望高手能指点一下。。。

[解决办法]
不应该在线程里边调用UpdateData(FALSE),等待这个线程跑完了,再调用
[解决办法]
DWORD WINAPI CThreadTestDlg::TestThreadProc(LPVOID lParam);
线程函数有两种:
1,全局函数:UINT ThreadFun(LPVOID p);
2,静态成员函数:static UINT CThreadTestDlg::TestThreadProc(LPVOID p);

热点排行