请教一下CreateThread和AfxBeginThread的用法和两者的区别,帮忙举个小例子更好。

解决方案 »

  1.   

    CreateThread 是API的
    AfxBeginThread 是MFC的AfxBeginThread 内部调用的 CreateThread
      

  2.   

    long WINAPI  MyThreadProc( long pParam )
    {        return 1;
    }int main(void)
    {
            int i;
            unsigned long * p=NULL;
            CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)MyThreadProc,NULL,0,p);
            return 1;
    }
      

  3.   

    void CXXDLG::OnButton1() 
    AfxBeginThread(XXOFPROC,this,THREAD_PRIORITY_NORMAL,CREATE_SUSPENDED,0,NULL);
    } UINT CXXDLG::XXOFPROC(LPVOID pParam)
    {
     return 0;}
      

  4.   

    MFC程序中一般用AfxBeginThread 
    CreateThread要自己CLOSEHANDLE
      

  5.   

    AfxBeginThread初始化了C RunTime Library多线程版本中的全局变量的,如果你要调用C RunTime Library里的函数,用CreateThread会产生内存泄漏。AfxBeginThread是通过封装了线程相关函数到一个线程类中,然后实现线程操作的,当线程类退出作用域的时候,会自动调用CloseHandle函数关闭线程句柄。
      

  6.   

    对,如果你使用了C RUNTIME函数的话,只能用AfxBeginThread而不能用CREATETHREAD函数
      

  7.   

    也可以用C Run的_beginthreadex哦
      

  8.   

    关注 .....应该不会把,,,你自己create 自己close,,,, 关注...
      

  9.   

    CreateThread(..)是系统创建线程的唯一函数,所有其他的线程创建都是调用了CreateThread(..).
      

  10.   

    both the C runtime lib and MFC need some special initializations to function properly, so if you need MFC support, use AfxBeginThread. otherwise use _beginthreadex. DO NOT use CreateThread, since you always use the C runtime lib in C programming.