一个ActiveX控件,线程在控件窗口创建以后就一直运行,想在窗口销毁时设置bRunning为False,来结束ThreadFunc中的循环,在ActiveX Container中测试没有问题,但是控件作为其它窗口的子对话框程序就出错了,似乎ThreadFunc中检查bRunning的时候,bRunning等对象已经销毁了(跟踪看到的值是很大的复数),而之前OnDestroy中的确将bRunning置0了,可能是什么原因呢?劳驾大家给参谋下~
调试欢乐多
{
m_bRunning = FALSE;
WaitForSingleObject(m_hThread, INFINITE);
}OnCreate()
{
m_hThread = CreateThread(...);
}
当界面线程已经退出了,m_bRunning销毁后,ThreadFunc再次引用该变量就会报错
等待线程退出后在OnDestroy()