Hallo Gemeinde,
Ich habe folgendes Problem in einem Thread :
Bei Beendes die Mainanwendung, während der Download im Thread läuft wird eine
exception ausgelöst (zu 90% - nicht immer):
EIdSocketError : 'Socket Error #10093' und manchmal auch, noch einer den ich im moment nicht reproduzieren kann : "WSA
NOTINITIAL". Bin leider Ratlos...
Hier der Abschnitt :
Delphi-Quellcode:
objStream.Position := 0;
try
repeat
//if not Self.Terminated then <--- bringt leider nichts
//begin
if (Self.Info.Size - Self.Info.Downloaded) > conFileSplitSize
then
begin
objHTTP.Request.Range := Format('
%d-%d', [Self.Info.Downloaded, (Self.Info.Downloaded+conFileSplitSize-1)]);
end else begin
objHTTP.Request.Range := Format('
%d-', [Self.Info.Downloaded]);
end;
objHTTP.Get(Self.Info.
Name, objStream);
// <-- Ich glaube immer wenn gerade Get aufgerufen wird und der Thread wird auf Terminated gesetzt, knallt es... :/
Self.Info.Downloaded := Self.Info.Downloaded + conFileSplitSize;
//end;
until (Self.Info.Downloaded >= Self.Info.Size);
except
on e:
Exception do begin
ShowMessage('
blub');
end;
end;
if not Self.Terminated
then objHttp.Request.Range := '
';
end;
Habe schon an jeder erdenklichen Stelle auf Terminated geprüft...
Nun, wie kann ich den Thread so beenden, dass der Fehler nicht auftritt... ?
Gruß, Real-TTX