![]() |
FTP Upload Thread hängt
Hallo alle zusammen.
Ich habe für ein Project ein Tool (weiter)entwickelt, das größere Mengen an Daten uploaden soll. Für den Upload-Thread habe ich mich an ![]() Das Problem ist, dass der Upload zwar läuft aber das Tool die ganze Zeit über hängt. Im Gegensatz zu dem verlinktem Beitrag habe ich meine Statusbar direkt auf der selben Form in der auch der Upload aktiviert wird.
Delphi-Quellcode:
Den FTP Thread habe ich nahezu vollständig aus dem gelinktem Beitrag kopiert bis auf ein paar kleinen Anpassungen
// Thread erzeugen
FtpExec:=TFtpUpload.Create(TRUE); FtpExec.LoadConfig(); // Quellverzeichnis setzen FtpExec.SetSourceDir('c:/backup/'); ProgressBar.Position := 0; FileCnt := 0; //Hier steht der Code der die Fileliste füllt und FileCnt hochsetzt. Der hat aber nichts mit dem Upload zutun ;) if FileCnt>0 then begin // Thread starten FtpExec.StartUpload; // Warten, bis der Thread suspended und damit fertig ist while (not FtpExec.Suspended) do begin // Fortschrittanzeige führen if FtpExec.ActiveFile<FileCnt then begin Progressbar.Position := round((FtpExec.ActiveFile/FileCnt)*100); FileCnt:=FtpExec.ActiveFile; end; end; // Fehler auswerten case FtpExec.State of ftpCONNECTING : DTS_DB_Repl.logWrite(DTS_DB_Repl.LogFile, DTS_DB_Repl.FinalInfo,'Fehler beim Verbinden'); ftpCHANGEDIR : DTS_DB_Repl.logWrite(DTS_DB_Repl.LogFile, DTS_DB_Repl.FinalInfo,'Fehler beim Wechsel ins Zielverzeichnis'); ftpUPLOADING : DTS_DB_Repl.logWrite(DTS_DB_Repl.LogFile, DTS_DB_Repl.FinalInfo,'Fehler beim Dateiupload'); ftpREADY : begin { alles ok - just do nothing } DTS_DB_Repl.logWrite(DTS_DB_Repl.LogFile, DTS_DB_Repl.FinalInfo,'Ftp Upload successful'); end; end; // Thread löschen FtpExec.Free; Progressbar.Position := 100; Könnt ihr mir sagen, warum das ganze einfriert? Ich habe auch schon mit Antifreeze rumprobiert aber da auch wenig Erfolg gehabt. Ich nutze Borland Developer Studio 2006 Danke und Gruß, Marc P.S.: Ich bin ziemlicher Delphi neuling und vor allem von threads hab ich wenig ahnung...daher könnt ihr auch auf "dumme" Fehler schließen ;) |
Re: FTP Upload Thread hängt
das
Delphi-Quellcode:
dürfte dein Problem sein. Du wartest ja so lange bis der Thread fertig ist. Und während du wartest reagiert deine Anwendung natürlich nicht mehr. Lagere das Warten auch in einen Thread aus.
// Warten, bis der Thread suspended und damit fertig ist
while (not FtpExec.Suspended) do |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz