Низкая скорость отправки большого количества мелких файлов
Alexey Korotkov написал(а) к Vladimir Bakhvaloff в Feb 16 07:28:24 по местному времени:
Привет Vladimir!
24-Фев-2016 04:10, Vladimir Bakhvaloff -> Alexey Korotkov:
AK>> Нашел проблемый участок. Проблема не в графике, а в логике. Там
AK>> получается цикл в цикле по набору имен файлов, и при общем
VB> Пальцем тыкни в процедуру, позырю, попробую поправить...
в ходе выполнения SD.OutFiles.Count уменьшается с N-1 до 0, а SD.SentFiles.Found увеличивается с 0 до N-1
MlrThr.pas
procedure TMailerThread.GetNextFile(P: TBaseProtocol);
...
for i := SD.OutFiles.Count - 1 downto 0 do
begin
f := SD.OutFiles[i];
if SD.SentFiles.Found(f) then begin
SD.OutFiles.AtFree(i);
end;
end;
SD: TMailerThreadInitData;
...
OutFiles: TOutFileColl; -> определен в Outbound.pas
Outbound.pas:
function TOutFileColl.Found;
var
i: integer;
begin
Result := False;
for i := 0 to Count - 1 do begin
if (TOutFile(Items[i]).Name = o.Name) or
(TOutFile(Items[i]).Orig = o.Name) then begin
Result := True;
break;
end;
end;
end;
Alexey
--- GoldED+/W32 1.1.5-021109
|