Pregunta

Me preguntaba si alguien sabía de una función de un mejor sueño que podría ser utilizado en ventanas en C, aparte de dormir (), que tiene una entrada de milisegundos y sólo garantiza que la entrada es la cantidad mínima de tiempo que transcurre. Estoy pasando en 1 milisegundo, pero en realidad conseguir un retardo de 15-16 milisegundos. ¿Hay alguna manera de establecer con precisión un tiempo de sueño especificado?

¿Fue útil?

Solución

No, no realmente. Cuando le dice a su programa para dormir, estás dando el procesador y dejar que el sistema operativo decidir qué hacer a continuación. Una vez que el sistema operativo está en control, que decide cuándo darle a su programa de otra rebanada de tiempo de procesamiento. Es por esto que se puede especificar un mínimo, pero no hay garantía de que el sistema operativo va a volver a su proceso en cualquier momento en particular.

Otros consejos

Sleep sólo garantiza que el proceso no se ejecutará para al menos n milisegundos, no es que va a dormir exactamente n milisegundos. Tal vez usted quiere configurar un temporizador? O espera ocupada (es decir QueryPerformanceCounter sondeo en un bucle).

que iba a tratar de evitar este enfoque (ocupado espera) a menos que usted tiene que, sin embargo, que está quemando ciclos y estás parando a la CPU de su puesta en velocidades de reloj más bajas (es decir, la quema de duración de la batería)

No, no hay una mejor función de apagado en Windows porque milisegundos es el nivel de granularidad disponible. Si quieres dormir por menos tiempo que necesita para implementar un bloqueo de número de clases.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top