Heim > Backend-Entwicklung > C++ > Wie unterbreche ich die Programmausführung in C mithilfe von Schlaffunktionen?

Wie unterbreche ich die Programmausführung in C mithilfe von Schlaffunktionen?

Linda Hamilton
Freigeben: 2024-10-24 03:31:30
Original
907 Leute haben es durchsucht

How to Pause Program Execution in C   using Sleep Functions?

Auf der Suche nach einer Schlaffunktion in C

Um den Programmausführungsfluss zu steuern, müssen Sie das Programm möglicherweise für eine bestimmte Dauer anhalten. In C gibt es kein direktes Äquivalent zur in anderen Sprachen häufig verwendeten Sleep(time)-Funktion. Die C-Standardbibliothek bietet jedoch eine praktikable Alternative.

Wir stellen vor: std::this_thread::sleep_for

Die C-Standardbibliothek bietet die Funktion std::this_thread::sleep_for, mit der Sie Folgendes tun können Unterbricht die Ausführung des aktuellen Threads für eine angegebene Dauer. Um es zu verwenden, müssen Sie die folgenden Header einfügen:

<code class="cpp">#include <chrono>
#include <thread></code>
Nach dem Login kopieren

Die Syntax von std::this_thread::sleep_for lautet wie folgt:

<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
Nach dem Login kopieren

Wobei timespan ein ist std::chrono::duration-Objekt, das die Dauer des Schlafes angibt. Um eine millisekundenbasierte std::chrono::duration zu erstellen, verwenden Sie den std::chrono::milliseconds-Konstruktor:

<code class="cpp">std::chrono::milliseconds timespan(111605);</code>
Nach dem Login kopieren

Mit diesen Komponenten können Sie die Ausführung Ihres Programms für die gewünschte Zeit anhalten Intervall:

<code class="cpp">std::this_thread::sleep_for(timespan);</code>
Nach dem Login kopieren

Beachten Sie, dass std::this_thread::sleep_until als ergänzende Funktion für eine präzise zeitbasierte Synchronisierung dient.

Legacy-Schlafoptionen (vor C 11)

Vor der Einführung von C 11 fehlte der Sprache die Thread-Funktionalität und Schlaffähigkeiten. Folglich war die Lösung zur Aussetzung der Ausführung plattformabhängig. Für Windows oder Unix hätten Sie sich vielleicht auf so etwas verlassen können:

<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>
Nach dem Login kopieren

Alternativ hätten Sie die Implementierung mit boost::this_thread::sleep der Boost-Bibliothek vereinfachen können.

Das obige ist der detaillierte Inhalt vonWie unterbreche ich die Programmausführung in C mithilfe von Schlaffunktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage