Énigme de la fonction de veille WinAPI : une veille plus longue que prévu
Lors de l'appel de la fonction de veille WinAPI avec un paramètre de 1, les utilisateurs peuvent rencontrer des retards de thread dépassant la durée prévue. En fait, une série répétée de 100 appels Sleep(1) a donné un temps de sommeil total de 1 500 ms, bien supérieur aux 100 ms stipulés.
Cause de la veille prolongée :
Ce comportement est inhérent au planificateur de threads Windows. Il fonctionne avec un quantum de temps, ou une période définie pendant laquelle un thread peut s'exécuter. Les retards non nuls sont intrinsèquement arrondis au quantum complet le plus proche.
Problèmes système plausibles :
Bien que le comportement observé soit typique, il peut être avantageux d'exclure problèmes système potentiels qui pourraient aggraver le problème :
Considérations supplémentaires :
Il est à noter que d'autres programmes en cours d'exécution peuvent ajuster la résolution de la minuterie à l'échelle du système, ce qui pourrait entraîner une taille quantique plus petite. Cela peut expliquer les cas où les délais de veille (1) sont signalés comme se situant dans le délai prévu de 1 ms. La résolution par défaut du minuteur dans Windows 7 devrait être d'environ 15,6 ms et non 1 ms.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3