高手们帮帮忙啊,我就这点分了

解决方案 »

  1.   

    代码很简单
    HTTP := TIDHTTP.Create(nil);
    try
      HTTP.Get(FUrl);
      HTTP.Disconnect;
    finally
      HTTP.free;
    end;这要外线程时内存就会不断的长,且降不下来
      

  2.   

    sorry应是
      这在多线程时内存就会不断的长,且降不下来
      

  3.   

    多线程?没做过
    都是单线程的自己跟踪Indy内部代码吧
    Get方法好像是用内存来保存数据的
    看看去吧
      

  4.   

    一个线程固定用一个TIDHTTP,尽量不用动态建立方式。
      

  5.   

    1、TIDHTTP没必要每次创建,线程创建时创建,销毁时销毁就行了
    2、内存上涨的原因就是ehom说的,线程本身没有释放了。
      

  6.   

    我是在线程中循环用的,并不存在线程释放问题
    TIDHTTP也是只创建一次最后发现Indy源码有问题,有内存泄漏,自己改了就没问题了
      

  7.   

    destructor Destroy; override; //hjh add...................................destructor TIdSocksInfo.Destroy;
    begin //hjh add...........原有内存漏
      try
        if FUDPSocksAssociation <> nil then FUDPSocksAssociation.Free;
      except
      end;
      inherited;
    end;
      

  8.   

    IdSocks单元的TIdSocksInfo添加以上代码