接口AfxBeginThread
CWinThread* AfxBeginThread( AFX_THREADPROC pfnThreadProc, LPVOID pParam, int nPriority = THREAD_PRIORITY_NORMAL, UINT nStackSize = 0, DWORD dwCreateFlags = 0, LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL );Tips:1 创建线程缺省情况下,创建线程执行线程任务,任务完成后,创建线程的资源句柄CWinthread资源均会被释放。2 不需要调用CloseHandle CWinthread->m_hThread,也不需要delete CWinthread*,否则会出现异常3 如果设置m_bAutoDelete=False,那么需要delete

本文介绍了在Windows环境下使用C++创建线程的方法,重点关注AfxBeginThread接口。当线程任务完成后,通常情况下资源会自动释放,无需手动调用CloseHandle或删除CWinThread对象。然而,如果设置m_bAutoDelete=False,则需要通过delete来释放资源,否则可能导致句柄和内存泄漏。AfxEndThread是线程退出的正确接口,只能在要退出的线程内调用。获取线程退出状态可以使用GetExitCodeThread。另外,为了安全地跨线程操作,可以创建挂起的线程并复制其句柄,但别忘了在适当时候关闭句柄以避免资源泄露。
590

被折叠的 条评论
为什么被折叠?



