"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como pausar a execução do programa em C++ usando funções Sleep?

Como pausar a execução do programa em C++ usando funções Sleep?

Publicado em 31/10/2024
Navegar:414

How to Pause Program Execution in C   using Sleep Functions?

Buscando uma função Sleep em C

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.

Apresentando std::this_thread::sleep_for

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.

Opções de sono legadas (pré-C 11)

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.
Declaração de lançamento Este artigo foi reimpresso em: 1729677484 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

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