Einzelnen Beitrag anzeigen

Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#1

TidHTTP -> Downloader in einem Thread

  Alt 5. Aug 2009, 10:46
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 : "WSANOTINITIAL". 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
  Mit Zitat antworten Zitat