解决方案 »

  1.   

    编译为调试版并运行打开procexp工具(可以在网上下载),配置好符号路径,找到进程双击,打到“线程”页,看增加的线程的调用栈信息,一般可以定位到线程的位置
      

  2.   

    搜出CreateThread (或者其它,如_beginthread,afxbeginthread)等函数所在的代码段,然后分析,这个应该容易找出来的
      

  3.   

    windbg等attach到进程,然后调试查看
      

  4.   


    代码量很大的,看代码查找不太现实,我用BoundsChecker监控代码,程序运行一晚上,也不知在什么时候就会出现很多线程,用BoundsChecker可以去看这些线程创建的位置吗?怎么看呀?不能的话用什么软件可以呀?
      

  5.   

    如果能够大概知道疯长的时刻,可以在IDE中点击运行暂停按键(全部中断那个按键),然后点击菜单在调试-窗口-线程,就可以调出当前的全部线程,双击某个线程,会进入对应的代码
      

  6.   

    有些线城并不是你自己使用beginthread createthread等显示创建,而是操作系统功能的一部分,例如你调用com,会出现一大堆线程,你创建一个对话框,也会出现一个线程,这不是你能控制的.
    你只要关注好你自己显示创建的线程就行,其他的是操作系统实现的问题,好像没办法限制和跟踪
      

  7.   

    这个问题是这么回事,程序打开某一功能后,就放那一晚上就会出现这么多线程,只要不打开该功能就没有。
    是操作系统实现的问题,一个com之类的调用,它需要启动好多的线程来辅助完成整个功能,这你又控制不了的,能做的只是查msdn,尽可能的调整参数,避免不必要的特殊功能调用.