1:CWinThread *pThread = AfxBeginThread(MyProc,Param);
2:pThread->m_AutoDelete = FALSE;
......................
......................
//删除线程时
3:WaitForSingleObject(pThread->hHandle,1000);
4:delete pThread;
在的2行,我看过的例程都把m_autoDelete 设为FALSE,照MSDN的意思,是不是改为TRUE时,线程函数return时,系统就会自动删除所创建的线程,就不用3,4行了?
也不知道这个是不是我要的快速杀死线程的答案
如果不是请哥哥姐姐们给各能快速杀死AfxBeginThread创建的线程的例子
4 个解决方案
#1
如果将m_bAutoDelete设置为false在线程结束的时候必须显式的释放资源
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!
希望对你有所帮助!
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!
希望对你有所帮助!
#2
快速杀死线程……要是你的线程忙的话肯定快不起来。线程应该经常检查退出标志。
#3
void ExitThread(
DWORD dwExitCode
);
BOOL TerminateThread(
HANDLE hThread,
DWORD dwExitCode
);
DWORD dwExitCode
);
BOOL TerminateThread(
HANDLE hThread,
DWORD dwExitCode
);
#4
看了半天才理解老兄的意思.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.
#1
如果将m_bAutoDelete设置为false在线程结束的时候必须显式的释放资源
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!
希望对你有所帮助!
如果想在线程结束时自动析构CWinThread对象,把m_bAutoDelete设置为true即可!
希望对你有所帮助!
#2
快速杀死线程……要是你的线程忙的话肯定快不起来。线程应该经常检查退出标志。
#3
void ExitThread(
DWORD dwExitCode
);
BOOL TerminateThread(
HANDLE hThread,
DWORD dwExitCode
);
DWORD dwExitCode
);
BOOL TerminateThread(
HANDLE hThread,
DWORD dwExitCode
);
#4
看了半天才理解老兄的意思.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.
用MFC创建的线程, 当线程函数结束时应用程序不需要显示删除指向线程的指针的. MFC已经对这个操作作了封装了. 在CWinThread的析构函数中执行了:CloseHandle(hObjects)的操作.