大家好 我的程序中创建了12个线程.各个线程也都用了freeonterminate:=true了。但是线程已运行,2G的内存占用98%。不知道怎么处理,线程是如何释放系统资源的,请大家帮忙了!!!!

解决方案 »

  1.   

    按照你的描述我很怀疑你是否关闭线程了,
    打开你的资源管理器,查看》选择列》(勾选)线程计数
    如果一直在增长的话你看看线程有没有退出的地方
    比如 if treminated then exit;
      

  2.   

    按照一楼的说法我查看线程数了,一直都是17个.大家能不能给我点及时关闭线程的例子看看啊,急啊!!!if treminated then exit;应该放到什么地方啊
      

  3.   

    一个线程吃内存1MB,要是能吃到2G内存自己检查一下线程的代码是不是有内存泄漏吧。
    起码线程部分你暂时貌似没有太大问题。
      

  4.   

    我创建了12个线程,有的线程里用到ADOquery,ADOconnection,ADOstoredproc运行就出现26个线程,2G内存占98%,查看内存使用情况一直都是9,300K左右,到底是怎么回事呢.大家帮忙啊
      

  5.   

    没有释放线程中的对象,线程中使用了TLabel,Tedit控件还有ADOquery,ADOconnection,ADOstoredproc,没有释放这些对象。这些控件都得释放吗?都需要动态创建吗?我用了freeonterminate:=true这不是终止线程吗?我不太会用线程,请赐教,不胜感激。
      

  6.   

    FreeOnTerminate:=True;后你也要调用线程的Terminate才能终止线程,2G的内存占用98%,与线程数量无关,检查线程内部代码吧
      

  7.   

    .如果想都釋入,你就 Application.Terminate  得了
    線程終止後線程申請的對象也釋放掉。還有不要在線程用DB系統的東西。
      

  8.   

    ……
    LZ真是
    线程内创建的东西也是要一个一个释放滴,要不然线程吃光内存也是很迅速的事情,不要以为线程销毁了他所有创建的东西都会被释放。
    另外不要看“内存使用”量,而要看“虚拟内存大小”以及“内存增长量”另外
    我说的是WINDOWS默认一个线程吃1MB内存的事情
      

  9.   

    我的tlabel,tedit都是在主窗体中托的控件也得释放掉吗?请大家帮忙啊,