web-dev-qa-db-fra.com

Fonction de veille sous Windows, en utilisant C

J'ai besoin de mettre mon programme en veille sous Windows. Quel fichier d'en-tête a la fonction sommeil?

32
RYN

Utilisation:

#include <windows.h>

Sleep(sometime_in_millisecs); // Note uppercase S

Et voici un petit exemple qui se compile avec MinGW et fait ce qu'il dit sur l'étain:

#include <windows.h>
#include <stdio.h>

int main() {
    printf( "starting to sleep...\n" );
    Sleep(3000); // Sleep three seconds
    printf("sleep ended\n");
}
79
anon

SleepEx (voir http://msdn.Microsoft.com/en-us/library/ms686307.aspx ) est le meilleur choix si votre programme crée directement ou indirectement des fenêtres (pour exemple, utiliser certains objets COM). Dans les cas simples, vous pouvez également utiliser Sleep.

7
Oleg

Incluez la fonction suivante au début de votre code, chaque fois que vous voulez attendre occupé. Ceci est distinct du sommeil, car le processus utilisera 100% de processeur pendant que cette fonction est en cours d'exécution.

void sleep(unsigned int mseconds)
{
    clock_t goal = mseconds + clock();
    while (goal > clock())
        ;
}

Notez que le nom sleep pour cette fonction est trompeur, car le CPU ne dormira pas du tout.

1
user2876907

MSDN : En-tête: Winbase.h (inclure Windows.h)

0
abelenky