我用AfxBeginThread循环创建线程,但程序运行后线程到达2000左右是自动关闭,哪位大虾给指点指点!!!!!

解决方案 »

  1.   

    在足够系统资源下,系统默认同一个进程,最多只能创建2028个线程.线程如何释放?你的线程执行完后,如果没有while()呀,或者WaitSingleObject什么的,就是自己释放呀,例如你的线程是
    DWORD WINAPI WorkerThread(LPVOID Para)
    {
     int b = a + b + c;
     return 0;
    }自己不就完成了吗? 
      

  2.   

    有while()的话,设置一个信号,比如while(continue==TRUE),要退出线程,只要在线程外continue=FALSE就行了
      

  3.   

    首先你这样创建线程不是个好事情
    但是出现异常不代表和你线程数量有关,而是你代码有bug,因为线程数量如果达到限制,至多创建失败,而不会导致你程序崩溃
      

  4.   

    AfxBeginThread创建的线程,在例程没有循环在里面的话就像普通函数一样执行一下就过去了,执行完了就什么都释放了。
    如果例程里面有循环就需要在主线程创建信号控制循环结束,也就执行完了。
    如果在例程中要强制释放线程,就需要在例程中AfxEndThread销毁当前的线程,不过这种方式好像不能释放资源,不可取。
      

  5.   

    仔细看看你线程里面的代码吧。如果你线路里面没有死循环
    while(1),for(;;)它执行完毕后就回自动释放的。