2010-07-31 8 views

Répondre

61

Utilisation:

#include <windows.h> 

Sleep(sometime_in_millisecs); // Note uppercase S 

Et voici un petit exemple qui 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"); 
} 
+4

Dommage que le répondeur était anonyme, ou il aurait gagné un bon rep ... –

+8

"vu 42374 fois" - si évidemment beaucoup de gens là-bas avaient aussi cette question (et comment devrais-je savoir au préfixe "msdn" pour mon google chercher quand je faisais principalement de la programmation Linux/POSIX pour le moment?) – mozzbozz

1

MSDN: En-tête: WINBASE.H (y compris Windows.h)

+1

Quand je des fenêtres. h mon compilateur donne "error: nom du paramètre omis" et "error: expression attendue avant ',' token" – RYN

+0

@Snigger Postez un court exemple qui le démontre, et dites-nous quel compilateur vous utilisez. –

+0

#include vide writeData (résultat * res, char * OUT) {} main() {int \t return 1; donne «error: expected») «avant» * «token» et j'utilise GCC (mingw) – RYN

6

Inclure la fonction suivante au début de votre code, chaque fois que vous voulez forcer l'exécution de faire une pause sans imposer un fardeau supplémentaire sur l'unité centrale de traitement (en cas d'une boucle for)

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

1. Ceci ne répond pas aux questions du poster 2. Ceci est juste faux car c'est toujours une boucle occupée (avec ou sans boucle 'for'). –

+0

up vote. Je cherchais une fonction de sommeil dans Windows C, sauf Sleep(). Cela fonctionne bien. Merci. – rashok

+6

Ce n'est pas le sommeil, c'est "rester occupé dans une boucle serrée", et mettre de toute façon un fardeau supplémentaire sur le CPU. Le sommeil libère le processeur pour faire d'autres choses. – Bacco