AGB  ·  Datenschutz  ·  Impressum  







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

TEvent.free im Thread Destructor?

Ein Thema von Mavarik · begonnen am 21. Mai 2014 · letzter Beitrag vom 22. Mai 2014
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: TEvent.free im Thread Destructor?

  Alt 21. Mai 2014, 16:00
Waitfor nicht nötig da im Thread Destructor schon vorhanden!
Wenn man es denn in der Reihenfolge aufruft wie Sir Rufo geschrieben hat, funktioniert das auch, ja.
Mach ich ja!
  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: TEvent.free im Thread Destructor?

  Alt 21. Mai 2014, 16:37
Waitfor nicht nötig da im Thread Destructor schon vorhanden!
Wenn man es denn in der Reihenfolge aufruft wie Sir Rufo geschrieben hat, funktioniert das auch, ja.
Mach ich ja!
... jetzt

Das Delphi-Referenz durchsuchenTThread.TerminatedSet ist irgendwann hinzugekommen und wird direkt am Ende von Delphi-Referenz durchsuchenTThread.Terminate aufgerufen.

Umbauen kannst du das, wenn du die Delphi-Referenz durchsuchenTThread.Terminate-Methode überschreibst (die ist natürlich nicht virtual , wär ja sonst zu einfach).
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 Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: TEvent.free im Thread Destructor?

  Alt 21. Mai 2014, 16:47
Delphi-Quellcode:
Destructor TMyThread.destroy;
begin
  Inherited;
  FMyEvent.Free; // NACH INHERITED!!!!!! Stimmt hab ich auch gefunden!
end;
s.o.
wie gesagt...
  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
 
#14

AW: TEvent.free im Thread Destructor?

  Alt 21. Mai 2014, 17:03
Delphi-Quellcode:
Destructor TMyThread.destroy;
begin
  Inherited;
  FMyEvent.Free; // NACH INHERITED!!!!!! Stimmt hab ich auch gefunden!
end;
s.o.
wie gesagt...
Ja, was denn?

Was passiert denn, wenn Terminate aufgerufen wird? Wird dann der Event gesetzt?

Wenn nicht, dann wartet dein Thread bis zum Ende aller Tage.
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
Peter666

Registriert seit: 11. Aug 2007
357 Beiträge
 
#15

AW: TEvent.free im Thread Destructor?

  Alt 21. Mai 2014, 18:38
Probiers mal so:

Code:
destructor TMyThread.Destroy;
begin
 Terminate;
 FMyEvent.SetEvent;
 WaitFor;
 FMyEvent.free;
 inherited;
end;
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.127 Beiträge
 
Delphi 10.3 Rio
 
#16

AW: TEvent.free im Thread Destructor?

  Alt 22. Mai 2014, 08:45
Ja, was denn?
FMyEvent.Free; // NACH INHERITED!!!!!! Stimmt hab ich auch gefunden!

Was passiert denn, wenn Terminate aufgerufen wird? Wird dann der Event gesetzt?

Wenn nicht, dann wartet dein Thread bis zum Ende aller Tage.
War doch schon alles erledigt und nicht die Frage...

1. Version aus der Frage...
Delphi-Quellcode:
Destructor TMyThread.destroy;
begin
   Terminate;
   MyEvent.SetEvent;
   MyEvent.Free; // Gut oder schlecht???
   Inherited;
end;
Finale Version...
Delphi-Quellcode:
Destructor TMyThread.destroy;
begin
   Terminate;
   FMyEvent.SetEvent; // Mit F für Sir Rufo
   Inherited;
   FMyEvent.Free; // Nach Ingerited! Hatte ich schon gefunden
end;
Alles Prima läuft!

Mavarik


@Peter666 Waitfor ist schon im free... FMyEvent.Free muss dann nur noch nach dem Inherited gemacht werden.
  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:51 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