Attente sans consommer tout CPU en C++
Pip Iiic
Messages postés
48
Date d'inscription
Statut
Membre
Dernière intervention
-
Pip Iiic Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Pip Iiic Messages postés 48 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais mettre une attente dans une application en C++ entre 2 instructions sans consommer tout le CPU, et multi-platforme si possible.
Je m'explique :
Au tout départ, j'utilisais la fonction Sleep() de windows.h mais il semblerait qu'elle ne soit pas portable.
J'ai ensuite utilisé time.h en répétant une boucle infinie tant que le délai ne serait pas écoulé.
Malheureusement, là est le problème : il charge continuellement, et, de plus, il m'affiche un "*.exe ne répond pas", donc je ne peux pas fermer ma fenêtre et les utilisateurs penseront que mon programme possède une défaillance.
J'ai aussi essayé la fonction ping, mais cela ne change rien.
En vous remerciant par avance,
Pip Iiic
Je souhaiterais mettre une attente dans une application en C++ entre 2 instructions sans consommer tout le CPU, et multi-platforme si possible.
Je m'explique :
Au tout départ, j'utilisais la fonction Sleep() de windows.h mais il semblerait qu'elle ne soit pas portable.
J'ai ensuite utilisé time.h en répétant une boucle infinie tant que le délai ne serait pas écoulé.
Malheureusement, là est le problème : il charge continuellement, et, de plus, il m'affiche un "*.exe ne répond pas", donc je ne peux pas fermer ma fenêtre et les utilisateurs penseront que mon programme possède une défaillance.
J'ai aussi essayé la fonction ping, mais cela ne change rien.
En vous remerciant par avance,
Pip Iiic
A voir également:
- Attente sans consommer tout CPU en C++
- Temperature cpu - Guide
- Cpu burner - Télécharger - Optimisation
- Stress cpu - Télécharger - Informations & Diagnostic
- Cpu z - Télécharger - Informations & Diagnostic
- Commande en attente d'acceptation fnac ✓ - Forum Consommation & Internet
Vous m'avez aidé lorsque que je souhaitais modifier la taille maximale d'une variable.
Merci de votre réponse rapide ; j'ai essayé votre méthode, malheureusement, comme vous l'avez dit, elle ne diffère guère de Sleep.
Il n'y a pas d'autre moyen ? Ou, du moins, d'éviter un "*.exe ne répond pas" ?
Mais si effectivement la seule chose que fait le programme c'est attendre, alors c'est normal qu'il ne réponde plus vu qu'il ne fait plus rien !
Il faudrait voir plus précisément ce que tu veux faire, mais je ne vois pas en quoi la fonction ping intervient...
La fonction ping me permet d'attendre un certain temps (ping localhost avec un temps de réponse que je définis) mais du côté utilisateur, cela ne change rien.
Pour supporter sleep sous Windows il faudrait faire :
Je viens de faire quelques tests chez moi, mais même en attendant assez longtemps, Windows ne m'affiche pas que l'exe ne répond pas. Le problème vient peut-être de ton ping finalement...
Pour l'attente, j'utilise time.h pour l'instant, soit :
clock_t goal;
goal = nbSecondes * CLOCKS_PER_SEC + clock();
while(goal > clock())
{
}
Mais c'est une boucle infinie, ce qui est embêtant.