![]() |
Re: FTP hängt sich auf
habe hauptthread und wie ändere ich den? ich benutze indy 10
|
Re: FTP hängt sich auf
Zitat:
Was vielleicht auch noch helfen könnte, daß Dein Anwendung nicht einfriert. Ist im onWork application.processMessages aufzurufen. Grüße Klaus |
Re: FTP hängt sich auf
THX alter damit gehts
|
Re: FTP hängt sich auf
Was ich gerade gemerkt habe. Es geht, die anwendung freezed nicht, aber wenn ich wo draufklicken will, wird der download beendet;
|
Re: FTP hängt sich auf
ohne Quelltext können wir nur erraten woran es liegt.
|
Re: FTP hängt sich auf
Hallo!
... Das ist das Problem mit Application.ProcessMessages, es ist eben nicht wirklich Parallelbetrieb. Während du downloadest, rufst du innerhalb OnWork Application.ProcessMessages auf, und veranlasst Delphi damit, die Nachrichtenverarbeitung anzustossen, damit z.B. ButtonClick-Ereignisse ausgeführt werden. Wenn du nun aber z.B. währenddessen ein Fenster per ShowModal öffnest, unterbrichst du damit den Download, denn du befindest dich noch immer im Ereignis OnWork, und zwar von in OnWork aufgerufenen Subroutinen (OnWork->ProcessMessages->ButtonClick->Form.ShowModal usw.). Wahrscheinlich kommt es dann irgendwann zum Timeout auf der Gegenseite. Mein Tipp: Wirklich das ganze in einen richtigen Thread auslagern. Cu, Udontknow |
Re: FTP hängt sich auf
korrekt.
mache eine neue thread unit baue das eine create procedure ein, mit der du die informationen an den thread übergibst, die du für den download benötigst (also quelle ziel usw) mache die thread unit in der main unit oder halt unit1 bekannt im thread (also in der threadunit) musst du nur noch im onexecute einen idftpclient instanzieren, die datei damit downloaden und alles wieder freigeben, was instanziiert wurde (sonst speicherlecks) den thread dann einfach über den downloadbutton schlummernd createn und mit den informationen füllen danach erst starten (threadvariable.resume;) und dann rennt der thread im hintergrund und ladet runter - danach beendet er sich wieder oder du brichst ihn manuell ab mit threadvariable.terminate; das ist so ziemlich alles was du machen musst allerdings halt nicht ganz so einfach als anfänger -> thread tutoruals suchen oder vorhandene demos von den indys auseinander nehmen usw |
Re: FTP hängt sich auf
Vielleicht kuckst du dir mal von meiner Seite die
![]() ![]() Zum einen macht die genau das was du haben willst, läuft threadsicher und du kannst eventuell was im Code über Threads lernen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:51 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