void Wait(double Duration)
{
clock_t End;
End = clock() + (Duration*CLOCKS_PER_SEC);
while (clock() < End)
{
// This loop just stalls the program.
}
}
Ma fonction fonctionne parfaitement la moitié du temps, mais elle bloque occasionnellement le programme avant qu'il ne soit appelé. Par exemple, prenez l'extrait suivant:Pourquoi cette sortie attend-elle quelque chose après?
cout << "This is\n";
Wait(2.5)
cout << "a test!";
Vous vous attendez la première ligne apparaisse immédiatement et la deuxième ligne apparaisse au bout de 2,5 secondes, mais parfois ALL apparaît au bout de 2,5 secondes. Quel est le problème?
Il y a certainement une meilleure façon de faire ce que vous voulez vraiment faire. Faites-nous savoir votre plate-forme/compilateur, et nous pouvons donner de meilleurs conseils. –
Est-ce que cela n'arrive que pour vous avec un cout? Gardez à l'esprit que c'est tamponné. Donc, si vous ne rougissez pas, je pense que vous pourriez avoir le comportement que vous éprouvez. – Bart
Je ne sais pas si c'est correct, mais est-il possible que le compilateur optimise la boucle car il ne semble rien faire? Voir cette question: http://stackoverflow.com/questions/3592557/optimizing-away-a-while1-in-c0x – AshleysBrain