How Windows programs achieve accurate timing

Source: Internet
Author: User
Tags current time message queue time interval

1. Not high precision

Windows98 is probably 55ms,windows NT is probably 10ms.

2. Wm_timer message may not be processed in time

Wm_timer messages, like other messages, are stored in a normal message queue. If the program processing other messages, using too long time, it delayed the processing of WM_TIMER messages, from the effect of the equivalent of the timer to be late.

3. Wm_timer message may be missing

This way, if a Windows program is demanding on time (for example, software such as a tester), what happens?

"The Soldier Ethernet Tester" uses the following stupid method.

This approach 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)

{

Todo

{

Cur_time= current time;

} while (!need_stop && cur_time

if (need_stop) break;

Do_work ();

Next_do_work_time+=interval;

}

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

Related Article

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

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.