MFC 线程的创建,线程函数在类内类外

Posted xixixing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC 线程的创建,线程函数在类内类外相关的知识,希望对你有一定的参考价值。

【线程的创建】

AfxBeginThread(类外的线程函数,NULL);

AfxBeginThread(类内的线程函数,(LPVOID)this);

【类外线程函数】

UINT 函数名(LPVOID pParam);//头文件中声明,放类外

UINT MyThreadA(LPVOID pParam) //cpp文件中具体实现
{

}

【类内线程函数】

static UINT 函数名(LPVOID pParam);//头文件中声明,放类内

UINT CMFCApplication5Dlg::MyThreadA(LPVOID pParam) //cpp文件中具体实现
{

}

【案例】IDC_OUTPUT_1——Static Text

UINT MyThreadA(LPVOID pParam)
{
    for (int i = 0; i <=100; i++)
    {
        SetDlgItemInt(AfxGetApp()->m_pMainWnd->m_hWnd, IDC_OUTPUT_1,i,false);//窗口句柄,具体控件ID
        Sleep(100);
    }
    return 0;
}
void CMFCApplication5Dlg::OnBnClickedButton1()
{
    // TODO:  在此添加控件通知处理程序代码
    AfxBeginThread(MyThreadA,NULL);
}
 
UINT CMFCApplication5Dlg::MyThreadA(LPVOID pParam)
{
    CMFCApplication5Dlg* dlg = (CMFCApplication5Dlg*)pParam;
    for (int i = 0; i <=100; i++)
    {
        dlg->SetDlgItemInt(IDC_OUTPUT_1, i, false);
        Sleep(100);
    }
    return 0;
}
void CMFCApplication5Dlg::OnBnClickedButton1()
{
    // TODO:  在此添加控件通知处理程序代码
    AfxBeginThread(MyThreadA, (LPVOID)this);//传入this指针
}

 

以上是关于MFC 线程的创建,线程函数在类内类外的主要内容,如果未能解决你的问题,请参考以下文章

IOS学习-02 OC--封装继承多态

MFC创建线程示例

猎豹MFC--进程和线程--创建线程AfxBeginThread() SetDlgItemInt()线程暂停继续终止

使用MFC中的AfxBeginThread创建多线程

转:MFC创建多线程实例

mfc 关闭阻塞的socket监听线程 select怎么用