怎样终止由CWinThread派生出来的线程???????????最好有例子。多谢!

解决方案 »

  1.   

    首先声明一个全局变量:
    extern CWinThread *pThread;//在.h中然后定义:CWinThread *pThread=NULL;//.cpp中在你的线程类的BOOL CMyThread::InitInstance()里加入: pThread=AfxGetThread();最后,在你要结束的地方加入: if(pThread)
    {

    DWORD exit;
             GetExitCodeThread(pThread->m_hThread,&exit);
             TerminateThread(pThread->m_hThread,exit);
    } 这样就结束了
      

  2.   

    c创建时保存句柄 然后最后用
    BOOL TerminateThread(
      HANDLE hThread,    // handle to thread
      DWORD dwExitCode   // exit code
    );关闭之
      

  3.   

    BOOL TerminateThread(
      HANDLE hThread,    // handle to thread
      DWORD dwExitCode   // exit code
    );CxxxThread m_thread;
    HANDLE hThread=m_thread.m_hThread;BOOL PostThreadMessage(
       UINT message ,
       WPARAM wParam,
       LPARAM lParam 
    );
    用WM_CLOSE不知道行不行,如果不行,重载PreTranslateMessage
      

  4.   

    要优雅的终止线程,你需要两个事件,一个是用于线程外部通知线程需要结束,另外一个是用与线程通知线程外部线程已经结束
    参见http://www.blogcn.com/blog/?u=jiangsheng
    在页面上查找AfxBeginThread