Simple timing
Rene Zwanenburg via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Mon Nov 17 08:38:43 PST 2014
On Monday, 17 November 2014 at 16:24:10 UTC, Paul wrote:
> I'm trying to write a program that involves simple timing; I
> like to be able to execute some function at a point no sooner
> than, say, 3500 milliseconds from now so I need to read the
> current 'system time' in ticks and calculate the required point
> in the future using ticks per sec. In other languages I've done
> something like this (pseudo code).
>
> now = currentTime;
> target = now + 3500
>
> do something
> ..
> until currentTime > target
> execute function
>
>
> I'm completely new to D and find the help pages on this subject
> very confusing (or at least a bit too detailed for a
> beginner!). Can anyone point me to a simple example or tell me
> how to go about this?
>
> Many thanks
>
> Paul
You can get the current 'system time' from std.datetime using
Clock.currTime.
Subtracting one SysTime from another results in a 'Duration',
which you can then compare to your target duration:
var startTime = Clock.currTime;
doSomething();
while(Clock.currTime - startTime < 3500.msecs)
{
executeFunction();
}
Clock.currTime uses a high performance timer,
QueryPerformanceCounter on Windows for example, so you shouldn't
have to worry about timer accuracy.
More information about the Digitalmars-d-learn
mailing list