property Item: TDownloadItem read FItem write FItem;
property Number: Integer read FNumber write FNumber;
constructor Create(CreateSuspended: Boolean);
- destructor Destroy; override;
+ destructor Destroy; override;
procedure Abort;
property OnWork: TGikoWorkEvent read FOnWork write FOnWork;
property OnWorkBegin: TGikoWorkBeginEvent read FOnWorkBegin write FOnWorkBegin;
destructor TDownloadThread.Destroy;
begin
+ FIndy.Request.CustomHeaders.Clear;
+ FIndy.Request.RawHeaders.Clear;
+ FIndy.Request.Clear;
+ FIndy.Response.CustomHeaders.Clear;
+ FIndy.Response.RawHeaders.Clear;
+ FIndy.Response.Clear;
+ FIndy.ProxyParams.Clear;
+
FIndy.Free;
inherited;
end;
Synchronize(FireDownloadEnd);
ResStream.Free;
end;
+
+ FIndy.Request.CustomHeaders.Clear;
+ FIndy.Request.RawHeaders.Clear;
+ FIndy.Request.Clear;
+ FIndy.Response.CustomHeaders.Clear;
+ FIndy.Response.RawHeaders.Clear;
+ FIndy.Response.Clear;
+ FIndy.ProxyParams.Clear;
+
if Terminated then Break;
Suspend;
end;
var
i: Integer;
begin
- for i := 0 to FThreadList.Count - 1 do begin
- TDownloadThread(FThreadList[i]).Free;
+ FThreadList.Pack;
+ for i := FThreadList.Count - 1 downto 0 do begin
+ TDownloadThread(FThreadList[i]).Free;
end;
FThreadList.Capacity := FThreadList.Count;
FThreadList.Free;
FDownThread: TDownloadThread;
begin
while not Terminated do begin
- Sleep(10);
+ //Sleep(10);
List := FItemList.LockList;
try
if List.Count > 0 then begin
end;
FAbort := False;
end;
+ Application.ProcessMessages;
end;
for i := 0 to FThreadList.Count - 1 do begin
TDownloadThread(FThreadList[i]).Terminate;