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.
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.
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.
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