基于对话框的 只有一个onok() 在onok()里有一个线程 线程没有任何执行 可是在退出进还会出在这样。void CMy11Dlg::OnOK() 
{
 // TODO: Add extra validation here
 CWinThread *th =AfxBeginThread(fun,this); th->Run();//为了保证线程运行
 CDialog::OnOK();
}UINT CMy11Dlg::fun(LPVOID pParam)
{  
return 0;
}
问题:
http://zhidao.baidu.com/question/1795740770339565507.html?quesup2&oldq=1线程mfc内存对话框

解决方案 »

  1.   

    CWinThread 的Run不是这样直接调用的,建议你看下MFC消息循环处理和UI线程的一些资料。如果只是想简单使线程转起来,不要加这句。
      

  2.   

    第一,类的成员函数不能作为线程函数,这个在较高版本的VC上会直接提示编译错误。
    UINT CMy11Dlg::fun(LPVOID pParam)
    {  
    return 0;
    }
    应改为:
    UINT fun(LPVOID pParam);
    (创建线程的函数,如你的onok())
    UINT fun(LPVOID pParam)
    {  
    return 0;
    }
    是一个全局函数,注意函数声明要放在你线程创建函数之前。第二,线程函数,也就是线程实体。在AfxBeginThread后即开始运行,无需采用
          this->fun()的方式进行运行,因为它是独立于主线程的另外一个线程。
      

  3.   

    CWinThread *th有可能在执行到th->Run()函数时被系统删除(因为work线程的线程函数执行完了),防止删除,可以将m_bAutoDelete设置为FALSE,