[fpc-pascal] Timer for Windows/Linux
"Fabrício F. Kammer"
ffkammer at conchalnet.com.br
Fri Sep 1 17:05:28 CEST 2006
Thanks Felipe,
Do you have an example of how to use this loop on a thread?
Sorry, but I don't know threads very well.
regards
Fabrício
Felipe Monteiro de Carvalho escreveu:
> On 9/1/06, "Fabrício F. Kammer" <ffkammer at conchalnet.com.br> wrote:
>> I need to implement a routine on my sofware to be executed each 5
>> minutes.
>
> Write a loop that first stores the current time, then executed
> whatever you need, and then sleeps until current_time - previous_time
>> = 5 minutes. Like this:
>
> while (not Terminated) do
> begin
> PreviousTime := Now;
>
> // Do what you need to do
>
> {----------------------------------------------
> "sleeps" while currentTime - PreviousTime isn´t bigger then 5
> minutes
> ----------------------------------------------}
> while (Now - PreviousTime < 5 minutes) do
> begin
> Sleep(1000); // May be bigger
> end;
> end;
>
> You can use the Now function here because 5 minutes a lot of time, and
> so you don´t really need a lot of precision.
>
> If you needed a nanosecond precision on your loop you could use the
> powerful EpikTimer component:
>
> http://wiki.lazarus.freepascal.org/EpikTimer
>
> If you want to receive user input while your loop runs, then put the
> loop on a separate thread.
>
More information about the fpc-pascal
mailing list