我做了一个多线程的程序,当程序开始执行是我并没有创建多线程,也就是说除了主线程外,其他的还有4个辅助线程,都是都过点击某一个按钮候后才创建的,
现在我把程序执行起来,通过windows任务管理器看到只有一个线程,但是我按了“保存”按钮后,马上就显示了有6个线程了,这是怎么回事阿?我并没有开启那些辅助线程,为什么我一保存就就会显示6个线程在运行?
另外一个问题就是开启辅助线程后,程序就有内存泄漏,我是通过AfxBeginThread创建的,望大家能够指点一二,谢谢!
现在我把程序执行起来,通过windows任务管理器看到只有一个线程,但是我按了“保存”按钮后,马上就显示了有6个线程了,这是怎么回事阿?我并没有开启那些辅助线程,为什么我一保存就就会显示6个线程在运行?
另外一个问题就是开启辅助线程后,程序就有内存泄漏,我是通过AfxBeginThread创建的,望大家能够指点一二,谢谢!
解决方案 »
- ReleaseDC的用法
- 一个关于PreTranslateMessage()的问题
- 调试时出现Use breakpoint called from code at 0x7c92120e是怎么回事?
- 今天去华为面试了 散分100
- 请问如何使用CBitmap这个mfc类!
- 请问一下OpenGL的运行环境有什么要求啊?
- 新写了个看门狗服务,大家参详参详?
- CListBox的横向滚动条如何使用
- 全局变量的问题?
- flounder(比目鱼) 先生请进来领分!(关于:请教:如何判断打印机是彩色的还是黑白的)
- 再VC6.0中使用template时,编译时总是出现LNK2001的错误,请看。。。
- 一个关于CTabCtrl简单的问题
内存泄漏的问题不好说,自己看看线程中那里分配内存了,有没有释放。
设一下断点,看看到底有没执行到AfxBeginThread就知道为什么了
好像mfc生成的程序都是这样的
如果是CWINTHREAD(或派生),有没有改变过他的M_BAUTODELETE变量(默认为TRUE),如果改变了,需要自己DELETE CWINTHREAD,否则不需要(也不应该).
如果是函数指针,内存泄漏大多数是这个函数内部问题产生的确定有没有调用过TERMINATETHREAD函数,这个函数会产生内存泄漏
有时候杀毒程序会给你加多2个线程的
还有就是可以用SPY++查看一下
sdi或者mdi程序,再保存一下,你就可以看到多出了很多线程,呵呵!