"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo pausar la ejecución del programa en C++ usando funciones de suspensión?

¿Cómo pausar la ejecución del programa en C++ usando funciones de suspensión?

Publicado el 2024-10-31
Navegar:997

How to Pause Program Execution in C   using Sleep Functions?

Buscando una función de suspensión en C

En la búsqueda de controlar el flujo de ejecución del programa, es posible que se encuentre con la necesidad de pausar el programa durante un período específico. En C, no existe un equivalente directo a la función Sleep(time) comúnmente utilizada que se encuentra en otros lenguajes. Sin embargo, la biblioteca estándar de C proporciona una alternativa viable.

Presentamos std::this_thread::sleep_for

La biblioteca estándar de C ofrece la función std::this_thread::sleep_for, que le permite suspender la ejecución del hilo actual durante un período específico. Para usarlo, deberá incluir los siguientes encabezados:

#include 
#include 

La sintaxis de std::this_thread::sleep_for es la siguiente:

void sleep_for(const std::chrono::duration& timespan);

Donde intervalo de tiempo es un objeto std::chrono::duration que especifica la duración del sueño. Para crear un std::chrono::duration basado en milisegundos, utilice el constructor std::chrono::millisegundos:

std::chrono::milliseconds timespan(111605);

Utilizando estos componentes, puede detener la ejecución de su programa durante el intervalo de tiempo deseado:

std::this_thread::sleep_for(timespan);

Tenga en cuenta que std: :this_thread::sleep_until sirve como una función complementaria para una sincronización precisa basada en el tiempo.

Opciones de suspensión heredadas (pre-C 11)

Antes de la introducción de C 11, el lenguaje carecía de hilo funcionalidad y capacidades de sueño. En consecuencia, la solución para suspender la ejecución dependía de la plataforma. Para Windows o Unix, es posible que haya confiado en algo como esto:

#ifdef _WIN32
    #include 
    
    void sleep(unsigned milliseconds)
    {
        Sleep(milliseconds);
    }
#else
    #include 
    
    void sleep(unsigned milliseconds)
    {
        usleep(milliseconds * 1000); // takes microseconds
    }
#endif

Como alternativa, podrías haber simplificado la implementación usando boost::this_thread::sleep de la biblioteca Boost.

Declaración de liberación Este artículo se reimprime en: 1729677484 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3