How Windows programs achieve precise timing

Source: Internet
Author: User

A friend asked me, "Creep Ethernet tester" This software, how to control the frequency of the contract.
I think, simply write an article to talk about the problem.


Windows will send a WM_TIMER message to the program every time a program sets a timer.
According to a description of the famous Windows Programming book, "Windows Programming" (in the 8th chapter),
We know that the Windows timer has the following drawbacks:


1. Not High accuracy
Windows98 is probably 55ms,windows NT is probably 10ms.


2. Wm_timer messages may not be processed in a timely manner
Wm_timer messages, like other messages, are stored in a normal message queue. If the program handles other messages, it takes a long time to delay the processing of the WM_TIMER message, which is equivalent to the timer coming late from the effect.


3. Wm_timer messages may be missing




So, what if a Windows program has a tough time-critical requirement (for example, software like a tester)?
The "Creep Ethernet tester" uses the following stupid method.


This method is very simple, but it does work. The following is the pseudo-code for this method.


Interval=x; The time interval that is required
Next_do_work_time= current time;


while (!need_stop)
{


Do
{
Cur_time= current time;
} while (!need_stop && cur_time<next_do_work_time);

if (need_stop) break;

Do_work ();

Next_do_work_time+=interval;
}


It is important to note that this method is CPU-intensive:)

How Windows programs achieve precise timing

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.