如何结束一个线程 RT在程序中用AfxBenginThread()函数来开始一个线程,如何用AfxEndThread()函数来结束一个线程? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最好让线程自己return返回比较安全一些 这样的问题问的人太多了!!AfxEndThread()要在线程控制函数内部调用。个人认为无需调用这个函数,return最好了。 无论你是怎样创建的线程终止他的方法只有四种线程函数返回(这是最安全的,但看来不是你需要的)线程通过调用ExitThread函数“杀死”自己(要避免使用这种方法)。同一个进程或另一个进程中的线程调用TerminateThread函数(要避免使用这种方法,不过应该是你需要的)包含线程的进程终止运行(这种方法避免使用) 可能我问题没有问明白:我要求是是在主线程中终止掉工作线程。而不是上面所说的,至于return,这个我也懂。 return就是让线程自己运行结束返回,强制结束线程用AfxEndThread,建议不要用TerminateThread 小弟明白了兔子部长的意思了。就是想问一下AfxEndThread()这个函数该怎么用呢? 用GetExitCodeThread得到错误码再调用AfxEndThread(UINT nExitCode, BOOL bDelete = TRUE); 出于安全考虑,让线程自已结束。就是return return 并非最好的最好是在return前面调用AfxEndThread()如果有WaitForSingleObject在等待这个线程的句柄,直接用return的话,等待函数有可能永远都不返回,用了AfxEndThread就不会出现这个问题 对于MFC线程来说,你调不调用AfxEndThread(),MFC都会调用它。我看过好多遍源码了!就是_AfxThreadEntry()这个函数。你说“如果有WaitForSingleObject在等待这个线程的句柄,直接用return的话,等待函数有可能永远都不返回,用了AfxEndThread就不会出现这个问题”,其原因不在于是否调用AfxEndThread(),而在于m_bAutoDelete的值 那这个m_bAutoDelete值要在那里设置啊~怎样设置才能正常退出线程呢!!!我现在就出现这样的了,线程退出的时候进入_AfxThreadEntry的AfxEndThread就挂在那里了。我直接是用return退出线程的的。。 回复18楼:将线程指针的m_bAutoDelete赋值为FALSE 即可 VC如何通过注册表修改本机IP地址 《WINDOWS核心编程》API挂接例题里的GetProcAddress为什么不能INLINED win32中,我想自绘STATIC,如何做?有例子最好 进程退出问题 高分求助!!! 不解?? C++ openssl的RSA加密问题 麻烦,如何编写一个代理程序? 有两个位图,我怎样比较他们是否相同,有代码或资料吗?谢谢,先! 微软面试题有兴趣的进来 坐标图形的旋转问题 CString类型转char*的问题
AfxEndThread()要在线程控制函数内部调用。
个人认为无需调用这个函数,return最好了。
终止他的方法只有四种线程函数返回(这是最安全的,但看来不是你需要的)
线程通过调用ExitThread函数“杀死”自己(要避免使用这种方法)。
同一个进程或另一个进程中的线程调用TerminateThread函数(要避免使用这种方法,不过应该是你需要的)
包含线程的进程终止运行(这种方法避免使用)
就是想问一下AfxEndThread()这个函数该怎么用呢?
再调用AfxEndThread(UINT nExitCode,
BOOL bDelete = TRUE);
最好是在return前面调用AfxEndThread()
如果有WaitForSingleObject在等待这个线程的句柄,直接用return的话,等待函数有可能永远都不返回,用了AfxEndThread就不会出现这个问题
将线程指针的m_bAutoDelete赋值为FALSE 即可