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.
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>
Die Syntax von std::this_thread::sleep_for lautet wie folgt:
<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
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>
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>
Beachten Sie, dass std::this_thread::sleep_until als ergänzende Funktion für eine präzise zeitbasierte Synchronisierung dient.
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>
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!