AGB  ·  Datenschutz  ·  Impressum  







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

VCL-Threads mit FreeOnTerminate:=true?

Ein Thema von Delphi-Laie · begonnen am 19. Nov 2014 · letzter Beitrag vom 20. Nov 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#11

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 19. Nov 2014, 21:09
Jupp, es gibt keinen VCL-Thread im Delphi, oder wie kann man den dort auf die Form pappen?
TThread ist und bleibt eine Komponente der RTL.

Abgesehn von TIdThreadComponent der Indy oder einigen Implementationen weiterer Dritthersteller, welche den TThread in einer VCL-Komponente kapseln. (es gibt hier sogar irgendwo noch eine alte Komponente von mir, von vor den anonymen Methoden)
$2B or not $2B

Geändert von himitsu (19. Nov 2014 um 21:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 19. Nov 2014, 21:22
Irgendwie rechne ich da wohl anders. Jedes Gedöns, was nicht auf die VCL zugreift, also ohne VCL auch zurecht kommt, gehört für mich auch nicht zur VCL.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#13

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 00:40
Irgendwie rechne ich da wohl anders. Jedes Gedöns, was nicht auf die VCL zugreift, also ohne VCL auch zurecht kommt, gehört für mich auch nicht zur VCL.
Das bekommen leider einige nicht richtig auf die Ketten, zwischen RTL und VCL zu unterscheiden, gibt auch einige Delphi Experten, die das dauernd durcheinander werfen

Jupp, es gibt keinen VCL-Thread im Delphi, oder wie kann man den dort auf die Form pappen?
TThread ist und bleibt eine Komponente der RTL.

Abgesehn von TIdThreadComponent der Indy oder einigen Implementationen weiterer Dritthersteller, welche den TThread in einer VCL-Komponente kapseln. (es gibt hier sogar irgendwo noch eine alte Komponente von mir, von vor den anonymen Methoden)
Nur, weil mans als Komponente verpackt, machts das noch lang nicht zur VCL gehörig.

Soweit sind meine Threadkenntnisse noch nicht. Meine Threads haben, einmal erzeugt, vollauf zu tun, die warten auf nichts.
Nicht der Thread, sondern jemand anders könnte auf den Thread warten, dass er fertig wird. Das sollte man nicht mit FreeOnTerminate := True kombinieren.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight

Geändert von Stevie (20. Nov 2014 um 00:45 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#14

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 05:14
Wenn ich nicht 100% sicher bin, das mein Thread VOR meiner Anwendung beendet wird, lasse ich das mit dem FreeOnTerminate. Sonst knallt es nämlich beim Beenden der EXE. Also hab ich einen kleinen Threadmanager, der die Threads erzeugt, sie in eine Liste packt und deren OnTerminate jeweils so umbiegt, das sie sich beim beenden wieder aus der Liste entfernen.

Der Manager selbst kann nun beim Beenden ordentlich alle Threads beenden und warten, bis die Liste leer ist. Dann weiß ich nämlich genau, wann was passiert.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 07:06
Jupp, es gibt keinen VCL-Thread im Delphi, oder wie kann man den dort auf die Form pappen?
TThread ist und bleibt eine Komponente der RTL.
Das ist natürlich richtig. Nur war ich der Ansicht, dass für die Leser des Tutorials der Unterschied zwischen WinAPI und VCL klarer ist als der Unterschied zwischen der WinAPI und der RTL, da die RTL nicht so direkt greif und begreifbar (im Sinne von Anfassen) ist. Deswegen habe ich mich damals für die Bezeichnung VCL-Thread entschieden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#16

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 08:27
Nja, soooo einfach ist es nun wirklich nicht zu erklären.

Ist TTimer nun RTL, non-visuelle VCL oder was Anderes, wobei es ja auf CreateWindow bassiert und somit visuell ist, wenn auch unsichtbar.
Und was ist mit TApplicationEvent, was ja ebenfalls nicht sichtbar ist, aber zum TApplication gehört, was ja eindeutig visuell ist.
Oder was ist mit der TDataSource?

Ich bin hier halt auch eher für die VCL.
$2B or not $2B

Geändert von himitsu (20. Nov 2014 um 08:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 08:41
Hier gab es doch mal (vor langer Zeit) eine ganze Reihe von Beiträgen zum Thema non-VCL.

Demnach müssen die ja gelogen haben, denn CreateWindow haben die auch benutzt
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Daniel
(Co-Admin)

Registriert seit: 30. Mai 2002
Ort: Hamburg
13.920 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 08:48
Ich denke, dass das Problem von Delphi-Laie vorläufig gelöst ist und die begriffliche Abgrenzung von VCL und RTL bei Bedarf in einem separaten Thread fortgeführt werden sollte.
Daniel R. Wolf
mit Grüßen aus Hamburg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

AW: VCL-Threads mit FreeOnTerminate:=true?

  Alt 20. Nov 2014, 09:11
OK, aber nur noch kurz was zu Non-VCL.

Mit Non-VCL war das direkte Benutzten der visuellen WinAPI gemeint, ohne Verwendung der Delphi-Zwischenschicht (VCL).
> CreateWindow('COMBOBOX') statt TComboBox usw.
$2B or not $2B
  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 22:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz