Simple timing [solved]

Paul via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Nov 17 09:20:40 PST 2014


Thank you both, I'm sure that answers my question.

Paul

On Monday, 17 November 2014 at 16:38:45 UTC, Rene Zwanenburg 
wrote:
> 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