C++ プログラムに時間指定の遅延を追加するにはどうすればよいでしょうか? 質問する

C++ プログラムに時間指定の遅延を追加するにはどうすればよいでしょうか? 質問する

C++ プログラムに時間指定の遅延を追加しようとしているのですが、試すべきことや参照すべき情報について何かアドバイスはありますか?

この時間遅延をどのように実装しているかについて、より詳しい情報があればいいのですが、時間遅延を追加する方法についての詳しい情報が得られるまで、これをどのように実装しようとすればよいのかさえわかりません。

ベストアンサー1

C++11 の更新された回答:

sleep_forおよび関数を使用しますsleep_until

#include <chrono>
#include <thread>

int main() {
    using namespace std::this_thread; // sleep_for, sleep_until
    using namespace std::chrono; // nanoseconds, system_clock, seconds

    sleep_for(nanoseconds(10));
    sleep_until(system_clock::now() + seconds(1));
}

sleepこれらの関数を使用すると、、、など、より良い解像度のために新しい関数を継続的に追加する必要がなくなります。およびは、時間、秒、フェムト秒などの型を介して任意の解像度の値を受け入れることができるテンプレート関数ですusleepnanosleepsleep_forsleep_untilchrono

C++14 では、リテラル サフィックス fornanosecondsと を使用することでコードをさらに簡素化できますseconds

#include <chrono>
#include <thread>

int main() {
    using namespace std::this_thread;     // sleep_for, sleep_until
    using namespace std::chrono_literals; // ns, us, ms, s, h, etc.
    using std::chrono::system_clock;

    sleep_for(10ns);
    sleep_until(system_clock::now() + 1s);
}

スリープの実際の期間は実装によって異なることに注意してください。10 ナノ秒のスリープを要求できますが、実装では、それが最短時間である場合、代わりに 1 ミリ秒のスリープになる可能性があります。

おすすめ記事