Ok det lyder som om jeg godt kan bruge Timer.schedule. Jeg har ingen
problemer med flyderi (o:
Hvordan vil den opføre sig hvis man sætter uret tilbage? Vil der også her
reelt kun gå det interval den er sat til?
Jeg læste lige lidt af java 1.3 doc'en og undrede mig over at der til
shedule() methoden står
"Fixed-delay execution is appropriate for recurring activities that require
"smoothness." In other words, it is appropriate for activities where it is
more important to keep the frequency accurate in the short run than in the
long run."
og til scheduleAtFixedRate() står
"Fixed-rate execution is appropriate for recurring activities that are
sensitive to absolute time, such as ringing a chime every hour on the hour,
or running scheduled maintenance every day at a particular time."
mon ikke de mener "Non-Fixed-Rate execution..." mht.. shedule()
dokumentationen?
Dahl
"Richard Flamsholt" <richard@flamsholt.dk> wrote in message
news:mua0lu83sraohc8oss3q7hh28khvl07dpo@news.sunsite.dk...
> "Dahl" <NOSPAMjimmichr@hotmail.comSPAMNO> skrev:
> >I want the task to be executed every 5 minutes, even if the computer time
is
> >changed due to DST.
>
> Brug Timer.schedule() i stedet for Timer.scheduleAtFixedRate():
>
> Timer.schedule(task, 0, n) prøvet at sover n msec mellem hvert kald til
> task. Brug den hvis det ikke er så vigtigt at kald nr. 100 bliver udført
> præcist efter 100*n msec, men godt må flyde lidt.
>
> Timer.scheduleAtFixedRate(task, 0, n) prøver at sørge for, at task
> indenfor en given tidsperiode t vil blive kaldt t/n gange. Hvis uret
> stilles en time frem vil den altså kalde task 1time/n gange ekstra for
> at "holde trit".
>
> Jeg opdagede selv forskellen på et embedded java-projekt, hvor tiden ved
> opstart blev stillet frem fra år 1980: Timer.scheduleAtFixedRate() blev
> rødglødende af at indhente 22 års forsømte minutlige task-kald!
>
> --
> Richard Flamsholt
> richard@flamsholt.dk -
www.richard.flamsholt.dk