スリープ関数を使用して C でプログラムの実行を一時停止するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-24 03:31:30
オリジナル
832 人が閲覧しました

How to Pause Program Execution in C   using Sleep Functions?

C でのスリープ関数の探索

プログラムの実行フローを制御しようとすると、指定した期間プログラムを一時停止する必要が生じる場合があります。 C には、他の言語でよく使用される Sleep(time) 関数に直接相当する関数はありません。ただし、C 標準ライブラリは実行可能な代替手段を提供します。

std::this_thread::sleep_for の紹介

C 標準ライブラリは std::this_thread::sleep_for 関数を提供します。これにより、次のことが可能になります。指定された期間、現在のスレッドの実行を一時停止します。これを使用するには、次のヘッダーを含める必要があります:

<code class="cpp">#include <chrono>
#include <thread></code>
ログイン後にコピー

std::this_thread::sleep_for の構文は次のとおりです:

<code class="cpp">void sleep_for(const std::chrono::duration& timespan);</code>
ログイン後にコピー

ここで、timespan はスリープの期間を指定する std::chrono::duration オブジェクト。ミリ秒ベースの std::chrono::duration を作成するには、std::chrono::milliseconds コンストラクターを使用します。

<code class="cpp">std::chrono::milliseconds timespan(111605);</code>
ログイン後にコピー

これらのコンポーネントを使用すると、プログラムの実行を希望の時間停止できます。 Interval:

<code class="cpp">std::this_thread::sleep_for(timespan);</code>
ログイン後にコピー

std::this_thread::sleep_until は、正確な時間ベースの同期のための補完関数として機能することに注意してください。

レガシー スリープ オプション (C 11 より前)

C 11 が導入される前は、この言語にはスレッド機能とスリープ機能がありませんでした。したがって、実行を一時停止する解決策はプラットフォームに依存していました。 Windows または Unix の場合は、次のようなものに頼った可能性があります:

<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>
ログイン後にコピー

あるいは、Boost ライブラリの boost::this_thread::sleep を使用して実装を簡素化することもできます。

以上がスリープ関数を使用して C でプログラムの実行を一時停止するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!