ホームページ  >  記事  >  バックエンド開発  >  C でスリープ機能を実装するにはどうすればよいですか?

C でスリープ機能を実装するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-24 00:31:29650ブラウズ

How to Implement Sleep Functionality in C  ?

C のスリープ機能

C では、開発者は、Sleep( と同様に、特定の期間プログラムの実行を一時停止する必要があることがよくあります) ) 他のプログラミング言語の関数。この記事は、その要件に対処し、包括的なソリューションを提供することを目的としています。

std::this_thread::sleep_for

C 11 では が導入されました。 <スレッド>ヘッダーを使用して、スレッド操作のクロスプラットフォーム標準を提供します。指定したミリ秒数プログラムを一時停止するには、 std::this_thread::sleep_for 関数を使用できます。

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

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

std::this_thread::sleep_for(timespan);</code>

std::this_thread::sleep_until

std::this_thread::sleep_for の代わりに std::this_thread::sleep_until を使用すると、特定の時点に到達するまで一時停止できます。

C 11 より前のソリューション

C 11 より前の C には、スレッド機能とスリープ機能がありませんでした。そのため、プラットフォームに依存したソリューションが必要でした。 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>

あるいは、C 11 以前のより単純なアプローチとして boost::this_thread::sleep を使用することもできます。

以上がC でスリープ機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。