VC++6.0如何实现开启线程?
要求:点开始button
实现开启线程?
同时线程需要调用自己定义的add()函数?

解决方案 »

  1.   

    开启线程DWORD dwThreadId;
    m_hThread = CreateThread( 
    NULL,              // no security attribute 
    0,                 // default stack size 
    WorkThread,    // WorkThread, 
    (LPVOID) this,     // thread parameter 
    0,                 // not suspended 
    &dwThreadId);      // returns thread ID 
    if (m_hThread == NULL) 
    {
    // AddToMessageLog("autoupdate create thread failed");
    return ;
    }
      

  2.   

    DWORD WINAPI ThreadProc(LPVOID p);
    _beginthreadex(NULL,0,ThreadProc,NULL,0,NULL);
      

  3.   

    _beginthreadex
    并在参数里传类的指针
      

  4.   

    DWORD WINAPI ThreadProc(LPVOID p);
    _beginthreadex(ThreadProc,NULL,(LPVOID)this);DWORD WINAPI ThreadProc(LPVOID p)
    {
     cxxx *yourclass = (cxxx*)p;
     if(p)
       p->add();
    }
      

  5.   

    CreateThread或者AfxbeginThread
    设计自己的线程函数就OK
    需要传递的参数可以通过LPVOID类型的指针进行传递,强制转换即可
    需要主要的是无限循环线程的安全退出,这里需要做点文章祝你好运
      

  6.   

    #include <process.h>VOID thread(LPVOID p)
    {
    //...code
    }
    _beginthread(thread,0,0);
      

  7.   


      CreateThread()或者AfxbeginThread()
      将add()以参数的形式付给这两个创建线程的API即可