线程入口函数的处理中经常会涉及到一个函数不断的在循环做一些工作,然后通过外部某个量的改变来是函数运行过程结束.
1.利用BOOL变量来控制
void ThreadProc()
{
bool m_bStop;
m_bStop = false;
while(!m_bStop)
{
....;
}
return 0;
}
通过改变m_bStop=True来结束.
2. 利用WaitForSingleObject来控制
void ThreadProc()
{
CEvent m_hStop:
m_hStop = CreateEvent(0,True,False,0);
while(::WaitForSingleObject(m_hStop, 10) != WAIT_OBJECT_0)
{
.....;
}
return 0;
}
通过调用SetEevent(m_hStop)来结束.