System Timer Considerations
9/8/2008
Evite usar a função Sleep para get maior precisão timer em segmentos em tempo real. Em vez disso, use um mecanismo timer que é baseado em uma interrupção ou de multimídia timers.
O timer de sistema gera pulsos sistema a uma Taxa fixa de uma marcação por milissegundo, qual é a taxa na qual uma interrupção timer é gerada e atendido pela OS. Gerando uma marcação sistema cada milissegundo, Windows Embedded CE permite que um aplicativo para dormir para aproximadamente 1 milissegundo quando ele chama o Modo de espera função com um dwMilliseconds valor do parâmetro de 1. Um segmento pode dormir por mais de um milissegundo, depending on sua prioridade in relation to outro ativo se quaisquer rotinas serviço interrup (ISRs) segmentos e execução. No mínimo, um Sleep(1) dormir chamadas para 1.z milissegundos, onde z é o restante tempo, menor do que um milissegundo, até o próximo marcação quando chama o segmento Modo de espera. Um retorno de um Modo de espera chamar também depende sua prioridade in relation to os outros segmentos no sistema. As APIs definir o tempo mínimo que um segmento espera ou dorme.
As variáveis kernel somente necessárias para determinar se um reagendar deve ocorrer é dwReschedTime. O seguinte mostra exemplo de código como cronograma um timer interrupção:
if ((int) (CurMSec – dwReschedTime) >= 0)
return SYSINTR_RESCHED;
else
return SYSINTR_NOP;