AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Threads create/terminate

Ein Thema von baumina · begonnen am 18. Dez 2014 · letzter Beitrag vom 19. Dez 2014
 
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#1

Threads create/terminate

  Alt 18. Dez 2014, 11:28
Das mit den Threads hab ich noch nicht so drauf und Google mich schon seit ner Weile im Ringel rum. Für euch ist das sicherlich ne ganz einfache Geschichte, mir fehlt hier grad das Verständnis.

Was ich habe:
Wenn in einer Grid gescrollt wird, wird mithilfe eines Threads eine Datei via FTP-Download auf die Festplatte gespeichert und mit einem TWebBrowser angezeigt.

Wie ich es umgesetzt habe:
Im GridOnClick wird ein Thread kreiert:
Delphi-Quellcode:
  AFTPThread := TFTPThread.Create(Dateiname,
                                  DoFTPOnLoading,
                                  DoFTPOnComplete);
Im DoFTPOnLoading ist eine Fortschrittsanzeige, im DoFTPOnComplete mache ich das WebBrowser.Navigate. Beide Proceduren werden per Synchronize aufgerufen.

Früher hatte ich die Fortschrittsanzeige und das Navigate im Thread, was ja nicht richtig war, da nicht threadsave. Deswegen habe ich die Anzeige nun in den Hauptthread verlagert. Dadurch kann ich jetzt FreeOnTerminate auf True setzen ohne dass ich Zugriffsverletzungen bekomme *jubel. Dadurch kann ich nun auch auf diese Zeilen, die ich bislang x-mal im Code hatte verzichten:

Delphi-Quellcode:
  if Assigned(AFTPThread) then
  begin
    AFTPThread.Terminate;
    AFTPThread.WaitFor;
    FreeAndNil(AFTPThread);
  end;
Prima! Nun zu meinen Fragen:

Wann muss ich denn jetzt was genau tun? Vor dem TFTPThread.Create muss ich sicherlich ein
Delphi-Quellcode:
if Assigned(AFTPThread) then
  begin
    AFTPThread.Terminate;
  end;
machen. Oder ein FreeAndNil? Ein FreeOnTerminate macht mir meine Variable ja nicht Nil, stimmt das Assigned dann überhaupt? Muss ich was abbrechen/freigeben, wenn das Formular geschlossen wird? Muss die Variable AFTPThread wirklich im Formular deklariert sein?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:34 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 by Thomas Breitkreuz