Einzelnen Beitrag anzeigen

Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#16

AW: TTimer nicht Thread-safe

  Alt 6. Feb 2018, 18:58
Das kann man umgehen, indem man statt Sleep einfach MSDN-Library durchsuchenWaitForSingleObject mit einem Event (bzw. die entsprechende Kapselung TEvent ) verwendet. Das Event lässt man permanent auf nonsignaled, bis man von Windows die WM_QUERYENDSESSION bzw. WM_ENDSESSION Nachricht erhält.
Noch praktischer: ich verwende eine von TThread abgeleitete Basis-Klasse, die dieses Warten als Methode anbietet und das Event im Terminate auslöst. Damit hilft das nicht nur beim Runterfahren Verzögerungen zu vermeiden, sondern auch beim schlichten Beenden des Programmes oder gar nur des Threads.
Ja, genau so hatte ich es damals auch umgesetzt und dafür die TerminatedSet Methode überschrieben
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat