AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Multithreading GUI

Ein Thema von value is NULL · begonnen am 28. Jan 2014 · letzter Beitrag vom 29. Jan 2014
Antwort Antwort
Seite 2 von 2     12   
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Multithreading GUI

  Alt 28. Jan 2014, 13:42
Jetzt haben mich doch einige überholt. Hier trotzdem der Text:


Warum baumelt die Methode "test" da so einsam herum? Das gehört doch zu deinem TMyOwnThread . Also

Delphi-Quellcode:
TMyOwnThread = class(TThread)
   protected
      procedure test();
      procedure Execute(); override;
end;

bzw.

TMyOwnThread = class(TThread)
   private
      procedure test();
   protected
      procedure Execute(); override;
end;

Wenn du einen Thread nicht irgendwo manuell freigeben willst, kannst du auf deiner Threadvariable auch FreeOnTerminate := True setzen, das kann manchmal sehr praktisch sein - Der gibt sich dann von alleine wieder frei.

Warum wartest du im OnClick-Handler auf den Thread? Das führt doch das Konzept eines Thread ad absurdum. Es soll doch gerade nicht die Oberfläche blockiert werden, sondern etwas im Hintergrund geschehen. Oder war das gerade nur, weil du ihn ordentlich wieder freigeben wolltest, wenn er zu Ende ist?

Letztendlich: Zum testen sicher gut, aber bitte gewöhn dir für die Praxis besser nicht an, von einem Thread aus etwas in die Formulare "hineinzu-synchronisieren". Der Thread ist für Hintergrund-Arbeiten da.

Weiterhin: Ich finde den Exception-Handler im Thread eher unsinnig. Ich habe noch nicht ganz verstanden, welches Schreckensszenario himitsu eben an die Wand gemalt hat, aber wenn in einem Thread eine Exception ganz nach oben bubbelt dann wird er beendet. Aber doch bitte nicht die ganze Anwendung?


PS: Ein VCL-ShowMessage erstellt ein Formular. In einem Thread keine gute Sache. Bei Firemonkey blicke ich spontan nicht durch. Kann man das in einem Thread überhaupt machen?

PPS: TThread.CreateAnonymousThread(..) ist an sich eine tolle Sache. Sonderlich viel leserlicher finde ich das nicht, insbesondere wenn es umfangreich wird. Für kleine Dinge aber eine Tolle Sache.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 13:33 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