大家知道,C++中线程分两种,一种是工作者线程,另外一种就是GUI线程,至于他们这间的区别大家可以上网上查找
这里我只是说明一下,创建GUI线程时,需要注意的地方。
有些和窗口相关的线程,最好是放在GUI线程里,因为和窗口或是特殊控件有关的初使化操作,GUI线程已经帮你合理的优化了,如果用工作者线程需要自己做这些操作,往往我们是做不好的。如果创建的MFC程序,在主窗口线程里再创建一个子线程,用来产生一个窗口,那么就用GUI线程,这时候,因为进程中有两个GUI线程,新创建的窗口发送WM_CLOSE后,窗口关闭,但是新创建的GUI线程并没有退出,造成内存泄露。所以后面创建的线程必需要自己处理,线程退出事件,具体操作如下:
新创建的GUI线程里的窗口类需要自己处理OnDestroy消息,并在此函数里调用PostQuitMessage(0);结束线程,所有的资源才能释放。
希望对你有帮助,有问题可以联系本人,guyuewuhua@163.com