AGB  ·  Datenschutz  ·  Impressum  







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

Timer für "threaded environments"

Ein Thema von hirnstroem · begonnen am 18. Dez 2006 · letzter Beitrag vom 19. Dez 2006
Antwort Antwort
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#1

Timer für "threaded environments"

  Alt 18. Dez 2006, 14:42
'loha Folks,

ich bin auf der Suche nach einer Möglichkeit in IntraWeb (threaded environment) einen Timer laufen zu lassen, welcher Rund um die Uhr, alle fünf Minuten etwas macht.

Nun kann, wie ich bereits herausgefunden habe, kein normaler Timer benutzt werden, denn dieser läuft nicht so wirklich.

Ich würde wohl beim Programmstart einen neuen Thread kreieren, welcher solange lebt wie die Applikation läuft und nichts anderes macht, als wiederholend knapp fünf Minuten zu schlafen und dann eine gewisse Funktion aufzurufen (es muss hunderten von Geräten, welche an einem CAN-Bus angeschlossen sind die Uhrzeit mitgeteilt werden, weil diese Geräte über einen viel zu ungenauen Quarzbaustein verfügen).

Ist dies empfehlenswert? Oder gäbe es bessere Varianten?

Vielen Dank und Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Timer für "threaded environments"

  Alt 18. Dez 2006, 15:07
Da reicht doch eine einfache Sleep-Funktion:
Delphi-Quellcode:
const
   DELAYTIME=(1.0/24.0/60.0*5); // 5 Min
var
   nextrun : TDatetime;

nextrun := Now+DELAYTIME;
while True do
begin
   Sleep(1000);
   if Terminated then Exit;
   if Now > nextrun then
   begin
      nextrun := Now+DELAYTIME;
      // und hier findet nun die grosse Aktion statt
      ...
      if Terminated then Exit;
   end;
end;
Der Thread wacht ungefähr einmal in der Sekunde auf und schaut, ob er selbst terminiert wurde
und ob es schon Zeit ist, die Aktion auszuführen.
Nach der Aktion wird nochmals geschaut ob der Thread schon terminiert ist, denn wir möchten
ja nicht eine weitere Sekunde warten.
Andreas
  Mit Zitat antworten Zitat
hirnstroem

Registriert seit: 21. Sep 2005
297 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Timer für "threaded environments"

  Alt 19. Dez 2006, 10:03
'loha,

das hört sich natürlich auch gut an.

Vielen Dank und Grüsse
hirnstroem
inde deus abest
  Mit Zitat antworten Zitat
radekj

Registriert seit: 17. Dez 2006
22 Beiträge
 
#4

Re: Timer für "threaded environments"

  Alt 19. Dez 2006, 10:27
Was ist normaler Timer ?

ciao
Radek
  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 17:00 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