Win32,MFC:结束线程

dus*_*kin 4 c++ winapi mfc multithreading

我有一个DLL,它有一个名为CWork的基于CWinThread的类.我使用AfxBeginThread创建它.

在这个类中,我定义了一个将infinet循环并执行某个任务的过程.此过程将单独用作线程.我也使用AfxBeginThread创建它.

现在,当我的DLL退出时,我想结束线程.这是因为我退出时遇到了崩溃,我很担心这就是原因.

另外,还有

伪代码示例:

Cmain类

Cmain::Cmain(){
    pMyThread = AfxBeginThread(CWork - a CWinThread based Class);
}
Run Code Online (Sandbox Code Playgroud)
 UINT HandleNextVTSConnectionCommandProc(LPVOID pParam);

class CWork

 CWork:CWork(){
   AfxBeginThread(HandleNextVTSConnectionCommandProc, this);
 }


UINT HandleNextVTSConnectionCommandProc(LPVOID pParam){

 while(true){

     dosomething();
     sleep(2000);

 }

}
Run Code Online (Sandbox Code Playgroud)

我的问题是,结束这两个线程的正确方法是什么?

谢谢!

Ste*_*eve 5

一般来说,结束线程的正确方法是让它完成,然后等待它完成.因此,在Windows上,您可能会发出一个事件,要求线程完成,然后等待线程HANDLE.强行终止一个线程几乎总是一个被误导的想法,它会回来困扰你.