都是启动一个线程,有什么不同?

解决方案 »

  1.   

    最好有AfxBeginThread,因为CreateThread并未正确设置与线程相关的一些运行时的全局变量之类的。
      

  2.   

    CreateThread()是Win32 API
    AfxBeginThread()是MFC的函数如果用MFC编程,不要用CreateThread,如果只是使用Runtime Library,用 _BegingThread,总之,不要轻易使用CreateThread 这是因为在MFC和RTL中的函数有可能会用到些它们所封装的公用变量,也就是 说AfxBeginThread和_BeginThread都有自己的启动代码是CreateThread所没有的 在用CreateThread所创建的线程中使用MFC的类和RTL函数就有可能出现问题 
    如果你是用汇编编写win32程序并且在线程函数中也不调用MFC和RTL的函数,那用 CreateThread就没问题,或者你虽然是用C写线程函数,但你很小心没调用RTL函数 
    也不会有问题 CreateThread是由操作系统提供的接口,而AfxBeginThread和_BeginThread则是编译 
    器对它的封装 
      

  3.   

    AfxBeginThread 是MFC的,
    CreateThread 是Win32 Api的
    _beginThread() 是C Runtiming的
      

  4.   

    oyljerry(☆勇敢的心☆) 说得好,详细!
      

  5.   

    afxbeginthread简单
    createthread复杂
      

  6.   

    一个是sdk也就是api函数,另一个是mfc的全局函数.
      

  7.   

    http://community.csdn.net/Expert/TopicView.asp?id=3345241
      

  8.   

    AfxBeginThread 是MFC的,它在里面调用的_beginthreadex(),它有自己的线程处理过程,只不过在它的线程处理过程中调用了用户传递的函数,_beginThread() 是C Runtiming的,它也有自己的线程处理过程,在它自己的线程处理过程调用了用户传递的函数,在win32中,它在里面调用了CreateThread()CreateThread()是win32的,是真正创建一个线程的函数,它也有自己的线程处理过程,只不过这个处理过程调用了用户传递的函数,在这个线程处理过程中以ExitThread(userThreadProc())结束。这个线程处理过程放在kernel32.dll中,没有公开。
      

  9.   

    AfxBeginThread需要包含谁?
    error C2065: 'AfxBeginThread' : undeclared identifier
      

  10.   

    AfxBeginThread是MFC封装好的线程函数
      

  11.   

    oyljerry(☆勇敢的心☆) 和  oyljerry(☆勇敢的心☆-要开始写论文了) ( ) 
    是不是同一个人啊,我说怎么有时候一个星,有时候两颗了,呵呵
    羡慕星星