Maison > développement back-end > C++ > Comment implémenter la fonctionnalité Sleep en C ?

Comment implémenter la fonctionnalité Sleep en C ?

Susan Sarandon
Libérer: 2024-10-24 00:31:29
original
726 Les gens l'ont consulté

How to Implement Sleep Functionality in C  ?

Fonctionnalité Sleep en C

En C , les développeurs rencontrent souvent le besoin de suspendre l'exécution du programme pendant une durée spécifique, similaire à Sleep( ) fonctionnent dans d’autres langages de programmation. Cet article vise à répondre à cette exigence et à fournir des solutions complètes.

std::this_thread::sleep_for

C 11 a introduit le et en-têtes, fournissant un standard multiplateforme pour la manipulation des threads. Pour suspendre le programme pendant un nombre spécifié de millisecondes, la fonction std::this_thread::sleep_for peut être utilisée.

<code class="cpp">#include <chrono>
#include <thread>

std::chrono::milliseconds timespan(111605); // or whatever

std::this_thread::sleep_for(timespan);</code>
Copier après la connexion

std::this_thread::sleep_until

Une alternative à std::this_thread::sleep_for est std::this_thread::sleep_until, qui permet de faire une pause jusqu'à ce qu'un moment précis soit atteint.

Solutions pré-C 11

Avant C 11, C manquait de capacités de thread et de fonctionnalités de veille. Des solutions dépendant de la plateforme étaient donc nécessaires. Voici un exemple qui fonctionne à la fois pour Windows et Unix :

<code class="cpp">#ifdef _WIN32
    #include <windows.h>

    void sleep(unsigned milliseconds)
    {
        Sleep(milliseconds);
    }
#else
    #include <unistd.h>
    
    void sleep(unsigned milliseconds)
    {
        usleep(milliseconds * 1000); // takes microseconds
    }
#endif</code>
Copier après la connexion

Alternativement, boost::this_thread::sleep peut être utilisé comme une approche pré-C 11 plus simple.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal