得到一个线程的指针,如何终止线程?在线程类里加入一个方法:void CMyThread::DoEnd()
{
AfxEndThread(-1,true);
}然后在外面调用: MyThreadPtr->DoEnd();//但执行到此时出错!!!是什么问题的???
{
AfxEndThread(-1,true);
}然后在外面调用: MyThreadPtr->DoEnd();//但执行到此时出错!!!是什么问题的???
TerminateThread(hThread, dCode); 用代码终止线程
CloseHandle(hThread);
你在主线程中调DoEnd();结束的是主线程,这当然是不对的。
你应该在线程中设一个标志,或者让线程等待一个事件什么的。
在主线程改变这个标志,或激发事件,然后在线程中调AfxEndThread退出
1. 在 CAdminThread 的 Run 方法里,用循环创建了几个CChildThread :int CAdminThread::Run()
{
while(true)
{
for(int i=0; i<3; i++)
{
CChildThread* m_Thread = (CChildThread*)AfxBeginThread(RUNTIME_CLASS(CChildThread), THREAD_PRIORITY_NORMAL,0, CREATE_SUSPENDED); }
Sleep(10*1000);
}
}2.此时所有线程在运行中...3.经过某一段时间,现在在 CAdminThread 中检测到要立即中止上面第一步中其中某一个 m_Thread 线程的运行,怎么控制啊??????4.上面的两个线程类要怎么改才可实现?????