Domanda

Mi chiedevo se qualcuno sapesse di una funzione di sonno migliore che potrebbe essere utilizzato in finestre in c, diversi da quelli di sonno (), che accetta un ingresso millisecondo e garantisce che l'ingresso è la quantità minima di tempo che intercorre solo. Sto passando a 1 millisecondo, ma in realtà sempre un ritardo di 15-16 millisecondi. C'è un modo per impostare con precisione un tempo di sonno specificato?

È stato utile?

Soluzione

No, non proprio. Quando dite il vostro programma di dormire, si sta dando il processore e lasciando che il sistema operativo a decidere cosa fare dopo. Una volta che il sistema operativo è in controllo, si decide quando dare il vostro programma un'altra fetta di tempo di elaborazione. Questo è il motivo per cui è possibile specificare un minimo, ma non c'è alcuna garanzia che il sistema operativo sarà tornare al vostro processo in un determinato momento.

Altri suggerimenti

Se vuoi in Multimedia Timer .

Sleep garantisce solo che il processo non verrà eseguito per almeno n millisecondi, non che dormirà esattamente n millisecondi. Forse si vuole impostare un timer? O aspettare occupato (cioè sondaggio QueryPerformanceCounter in un ciclo).

Mi piacerebbe provare di evitare questo approccio (attesa occupato) a meno che non si deve, però, si sta bruciando cicli e si sta fermando la CPU da essere messo in velocità di clock inferiori (cioè brucia la durata della batteria)

No, non c'è una funzione di sonno migliore su Windows perché millisecondi è il livello di granularità disponibili. Se volete dormire per meno tempo è necessario implementare un blocco di selezione di sorta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top