ホームページ > バックエンド開発 > C++ > C で実行を一時停止する方法 : Sleep 関数と代替手段のガイド

C で実行を一時停止する方法 : Sleep 関数と代替手段のガイド

DDD
リリース: 2024-10-23 19:50:02
オリジナル
556 人が閲覧しました

How to Suspend Execution in C  : A Guide to the Sleep Function and Alternatives

C の Sleep 関数 : 総合ガイド

C の対応するものとは異なり、C にはプログラムの実行を一時停止するための明示的な Sleep() 関数がありません。指定された期間。ただし、最新の C 標準では、 によって提供される多用途のソリューションが導入されています。 <スレッド> headers.

std::this_thread::sleep_for:

の使用これは、C 11 以降で推奨されるアプローチです。スリープ期間を指定するには、タイプ std::chrono::milliseconds の単一の引数を取ります。

<code class="cpp">#include <chrono>
#include <thread>

std::chrono::milliseconds timespan(111605); // or whatever

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

C 11 より前の代替案:

C 11 でのスレッドの導入には、プラットフォーム固有のソリューションが必要でした。 1 つのオプションは、条件付きコンパイルを使用してスリープ関数を定義することです:

<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 ライブラリを活用することもできます:

<code class="cpp">#include <boost/thread/thread_only.hpp>

void sleep(unsigned milliseconds)
{
    boost::this_thread::sleep(boost::posix_time::milliseconds(milliseconds));
}</code>
ログイン後にコピー

追加機能:

sleep_for に加えて、ヘッダーには、特定の時点まで実行を一時停止する sleep_until が用意されています。これにより柔軟性が高まり、睡眠時間をより正確に制御できるようになります。

以上がC で実行を一時停止する方法 : Sleep 関数と代替手段のガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート