一个比较好的习惯是主线程关闭前要等所有工作线程关闭。
若主线程不等工作线程关闭,系统会强制退出所有工作线程,这样的话会引起下面问题:不会调用类的构造函数,对全局变量的访问有时会出现问题(因为此时全局变量有可能已经废除了,但工作线程还在访问)等。
一般可以这样写:
增加变量m_hCloseEvent,构造时创建此Event,在析构是SetEvent,然后等待线程退出,WaitForSingleObjec(m_hThread, -1).
一个比较好的习惯是主线程关闭前要等所有工作线程关闭。
若主线程不等工作线程关闭,系统会强制退出所有工作线程,这样的话会引起下面问题:不会调用类的构造函数,对全局变量的访问有时会出现问题(因为此时全局变量有可能已经废除了,但工作线程还在访问)等。
一般可以这样写:
增加变量m_hCloseEvent,构造时创建此Event,在析构是SetEvent,然后等待线程退出,WaitForSingleObjec(m_hThread, -1).