AGB  ·  Datenschutz  ·  Impressum  







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

Thread + Timer, Einbinden von TimerThread.pas

Ein Thema von MarLe · begonnen am 10. Sep 2014 · letzter Beitrag vom 3. Jan 2018
Antwort Antwort
MarLe

Registriert seit: 13. Jan 2005
83 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 11. Sep 2014, 11:56
Ich kann ja auch auf FEnabled (statt Enabled) abfragen, funktioniert auch, deshalb die Frage.
Die zweite Frage hat sich erledigt, da habe ich woanders was von ResetEvents gelesen, aber falsch aufgefasst.

Gruß MarLe
  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
 
#2

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 11. Sep 2014, 12:15
Ich kann ja auch auf FEnabled (statt Enabled) abfragen, funktioniert auch, deshalb die Frage.
Ja kann man, aber dann so:
Delphi-Quellcode:
  FCS.Enter:
  try
      if FEnabled then
        LInterval := FInterval
      else
        LInterval := INFINITE;
  finally
    FCS.Leave;
  end;
Die Delphi-Referenz durchsuchenTCriticalSection schützt vor dem gleichzeitigen Zugriff von unterschiedlichen Threads. Bei der Abfrage über die Eigenschaft ist das im Getter und Setter schon drin (siehe Source) und darum kann man die Eigenschaften gefahrlos benutzen, ansonsten muss man sich um den Schutz selber kümmern.

Bei Threads gibt es neben dem es funktioniert (kompiliert und ist auch mal gelaufen) auch noch ein es funktioniert gesichert immer
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)

Geändert von Sir Rufo (11. Sep 2014 um 12:18 Uhr)
  Mit Zitat antworten Zitat
MarLe

Registriert seit: 13. Jan 2005
83 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 11. Sep 2014, 12:26
Ok alles klar, so wie du es beschrieben hast habe ich es auch gemeint, ist quasi egal ob ich auf FEnabled oder Enabled abfrage.
"es funktioniert gesichert immer" ist mir natürlich am liebesten!

Gruß Marle
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 2. Jan 2018, 00:38
Weile ich ein anderes Thema damit nicht belasten möchte hier die Frage.

Ist dieser TimerThread mit Warte-Events nicht anderes als ein normaler TThread mit einer while-Schleife und einem Sleep(1234) im Execute-Teil?
Nur.. mit Events eben.. und nicht mit Sleep?


Wie sähe das hier mit dem TimerThread aus?
Delphi-Quellcode:
procedure TMyNormalThread.Execute;
begin
  while not Terminated do
   begin
    Sleep(1000);

    if 1 = 2 then
     // viel zu tun
   end;
end;

Geändert von LTE5 ( 2. Jan 2018 um 00:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 2. Jan 2018, 09:43
Nur.. mit Events eben.. und nicht mit Sleep?
emm... Ja genau das macht ja den Unterschied...
  Mit Zitat antworten Zitat
LTE5

Registriert seit: 13. Nov 2017
355 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 2. Jan 2018, 12:07
Angenommen ich möchte einen Thread 5 Stunden schlafen legen und er soll nach diesen 5 Stunden alleine aufwachen.
Wie bewerkstellige ich das ohne Sleep?
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.578 Beiträge
 
Delphi 7 Professional
 
#7

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 2. Jan 2018, 12:22
Interval := 5 * 60 * 60 * 1000; 5 Stunden * 60 Minuten * 60 Sekunden * 1000 Millisekunden?

Und wenn er dann wach wird, Interval auf den dann gewünschten Zeitraum setzen?
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

AW: Thread + Timer, Einbinden von TimerThread.pas

  Alt 2. Jan 2018, 12:38
Angenommen ich möchte einen Thread 5 Stunden schlafen legen und er soll nach diesen 5 Stunden alleine aufwachen.
Wie bewerkstellige ich das ohne Sleep?
5h ist natürlich schon eine Spanne.

Ich würde mir in so einen Fall einen Timeout von X Minuten setzen und dann immer in einer Liste nachschauen ob ein Event ansteht.

Beispiel: ThreadTimeout auf 1h...

Wenn der nächste Termin < 1h ist setze ich den Timeout auf "Restzeit" dann habe ich einen Event der genau feuert.

Das gleiche, wenn ein neuer Event in die Liste kommt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 14:51 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