Red de conocimiento informático - Conocimiento informático - ¿Cómo hacer que el tiempo de espera de la función sleep() en lenguaje C sea inferior a 1 segundo?

¿Cómo hacer que el tiempo de espera de la función sleep() en lenguaje C sea inferior a 1 segundo?

La función sleep() solo puede tener una precisión de aproximadamente 50 ms, pero no se puede utilizar sleep(10). Si se requiere una sincronización precisa, puede usar la función QueryPerformanceFrequency(), el uso es el siguiente:

LARGE _ INTEGER litmp

Longlong QPart1, QPart2

doble dfMinus, dfFreq, dfTim

QueryPerformanceFrequency(amp;litmp);

dfFreq = (doble)litmp. QuadPart//Obtener la frecuencia de reloj del contador

QueryPerformanceCounter(amp; litmp);

QPart1 = litmp. QuadPart//Obtener valor inicial

Hacer

{

QueryPerformanceCounter(amp; litmp);

QPart2 = litmp. QuadPart //Obtiene el valor de parada

df MINUS =(double)(q part 2-q part 1);

df Tim = df MINUS/dff req; Valor de tiempo correspondiente en segundos.

} while(df Tim lt; 0.001);

El error de tiempo es inferior a 1 microsegundo y la precisión está relacionada con la configuración de la CPU y otras máquinas.

×××××××××, por lo que esperar 1 segundo es dormir (1000). Si el retraso es inferior a un segundo, haga que el parámetro pasado sea inferior a 1000.

Por ejemplo, espere 0,1 segundos:

Dormir(100);