我程序在运行时,开了三个线程,一个主线程,两个分线程;主线程负责逻辑判断,分线程负责画图,但是程序跑了一个小时,就会自动退出,而且每次时间都是一个小时左右!真是让我郁闷,每次退出来时都说有个地址(同一个地址)出错!怎么查出这个地址,好想这个地址不是我代码运行时占用的地址?很奇怪!请各位大侠指点!

解决方案 »

  1.   

    1. Try to watch stack
    2. Carefully check that whether has memory leaking on your project.
    3. Try to comment out any sub-thread then debug it as step by step.
      

  2.   

    1,CDC类注意使用必须释放
    2,两个线程如果使用全局变量,注意线程同步,比如加临界区
      

  3.   

    能gdi泄露。或者没有同步好。
      

  4.   

    我以前写过了
    这是因为默认情况下,每个线城的局部STACK分配了1MB虚拟内存
    而WIN32下每个进程最多能使用2GB内存,还需要考虑到HEAP共享
    那你说你默认情况下一个进程能开多少个线程?
    如果你真的需要开启超2000个,那么在编译开关里指定STACK虚拟分配的大小,一般256KB足够了