Reduce your app's reliance on high-resolution periodic timers.
Avoid Sleep() calls in tight loops. Use Wait*() APIs instead. Sleep() or any other
busy-wait API can cause the operating system to keep the machine from being in the Idle
state. Intel's Mobile Platform Idle Optimization
offers an extensive rundown of which APIs to use and to avoid.
Avoid tight polling loops. If you have a polling architecture that uses a tight loop,
convert it to an event-driven architecture. If you must poll, use the largest polling
Avoid busy-wait calls. This can cause unnecessary power use. There is no way for the
operating system or the power management hardware to detect that the code does nothing