Em busca de controlar o fluxo de execução do programa, você pode encontrar a necessidade de pausar o programa por um período especificado. Em C , não há equivalente direto à função Sleep(time) comumente usada encontrada em outras linguagens. No entanto, a biblioteca padrão C fornece uma alternativa viável.
A biblioteca padrão C oferece a função std::this_thread::sleep_for, que permite que você suspender a execução do thread atual por um período especificado. Para usá-lo, você precisará incluir os seguintes cabeçalhos:
#include
#include
A sintaxe de std::this_thread::sleep_for é a seguinte:
void sleep_for(const std::chrono::duration& timespan);
Onde timespan é um objeto std::chrono::duration especificando a duração do sono. Para criar um std::chrono::duration baseado em milissegundos, use o construtor std::chrono::milliseconds:
std::chrono::milliseconds timespan(111605);
Usando esses componentes, você pode interromper a execução do seu programa pelo tempo desejado interval:
std::this_thread::sleep_for(timespan);
Observe que std::this_thread::sleep_until serve como uma função complementar para sincronização precisa baseada em tempo.
Antes da introdução do C 11, a linguagem carecia de funcionalidade de thread e recursos de suspensão. Consequentemente, a solução para suspender a execução dependia da plataforma. Para Windows ou Unix, você pode ter confiado em algo assim:
#ifdef _WIN32
#include
void sleep(unsigned milliseconds)
{
Sleep(milliseconds);
}
#else
#include
void sleep(unsigned milliseconds)
{
usleep(milliseconds * 1000); // takes microseconds
}
#endif
Alternativamente, você poderia ter simplificado a implementação usando boost::this_thread::sleep.
da biblioteca Boost.Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3