2

実行をブロックせず、可能であればスレッドを回避することなく、C ++で経過時間を計算する方法があるのだろうか。

状況: 爆弾が作成され、5 秒後に爆発する必要があります。爆発するまで 5 秒間スリープしてから自殺するスレッドを作成することを避けることはできますか?

4

2 に答える 2

1

使用std::chronoすると、次の方法で非ブロッキング経過タイマーを使用できます

目的の時間測定の開始時にこれを呼び出します。

std::chrono::steady_clock::time_point begin_time = std::chrono::steady_clock::now();

目的の時間測定の最後にこれを呼び出します。

std::chrono::steady_clock::time_point end_time = std::chrono::steady_clock::now(); 

経過時間を計算します。

std::chrono::steady_clock::time_point elapsed = end_time - begin_time;

分または時間などのより低い解像度が必要な場合は、またはstd::chronoを使用して適応させることができますstd::chrono::steady_clock::minutes(/*num minutes*/)`std::chrono::steady_clock::hours(/*num hours*/)

于 2013-04-30T15:05:55.047 に答える