idHttp下载速度时,占资源很多,我放在线程里,线程也不动了,找到办法解决了:
在Indy有一个idAntiFreez组件,设他的Active为True,就解决了。
//下载线程对象的创建
Constructor _DLThread.Create(CreateSuspended:Boolean);   //构造器,注意Create是静态方法,不能重载
Begin
    Inherited Create(CreateSuspended);
    //Suspended:=False;
    fDownLoadURL:='';
    fTargetFile:='';
End;
//下载线程对象的执行
Procedure _DLThread.Execute;
Var FS:TFileStream;
    sInfo, sURL,sFile:String;
Begin
    if Suspended then Begin
        //Suspend;
        Exit;
    End;
    sURL:=sDownLoadURL;
    sFile:=sTargetFile;
    //
    if (sUrl='') or (sFile='') then Exit;
    //
    {With Frm_MDI do     //,Frm_MDI.idHttp1
    Try
        sInfo:='下载文件['+sURL+']到['+sFile+']';
        ShowInfo('开始'+sInfo+'... ...');
        if FileExists(sFile) then DeleteFile(sFile);
        //句柄属于线程  idHttp1:=tIDHttp.Create(Application);
        //
        Try
            FS:=TFileStream.Create(sFile,fmCreate);   //文件流
            idHttp1.Get(sURL,FS);                          //下载
            //
            ShowInfo(sInfo+'完毕');
        Except
            On E:Exception do Begin
                ShowInfo('[DownLoadHttpFile]'+sInfo+'失败'+#13+E.message);
                ShowMessage('[DownLoadHttpFile]'+sInfo+'出错!'+#13+E.message);
            End;
        End;
        //
    Finally
        If Assigned(FS) then FS.Free;
    End;
    }
    //Suspended:=True;
End;
//设置下载URL
Procedure _DLThread.SetDownLoadURL(Value:String);
Begin
    if fDownLoadURL=Value then Exit;
    Terminate;                        //若下载URL变更,则终止 
    fDownLoadURL:=Value;
End;