线程的挂起,唤醒和终止

时间:2022-03-17 14:33:47
 //如果是利用h=AfxBeginThread()创建线程,需要获取句柄,h->m_hThread
线程的挂起
在CreateThread()等函数创建线程时,可以指定线程的挂起状态,
在运行过程中也可以挂起线程
  DWORD SuspendThread(HANDLE hThread);
  hThread表示线程的句柄
  返回值:成功,返回值为之前挂起的线程次数,失败返回0Xffffffff
线程的唤醒
通过唤醒线程恢复线程的执行
  DWORD ResumeThread(HANDLE  hThread);
线程的终止
 3种方式//建议第一种方法
  1:DWORD dwExit;
     BOOL ret=GetExitThread(m_p->handle,&dwExit)//根据句柄获取线程的状态
      if(dwExit==STILL_ACTIVE)//线程还在活动
       {
             m_p->ExitInstance();
            delete m_p;
        }//其中m_p的类型是 CWinThread *;
  2: ExitThread(DWORD dwExitCode);
       dwExitCode与1中的dwExit相同
  3:BOOL TeminateThread(HANDLE,DWORD dwExitCode);