私のプログラムでは10秒ごとに何かする必要があり、C++コンソールアプリケーションではその方法を知りません。 C#ではタイマーを作成することができましたが、ここでは苦労しています...タイマーを作成するにはどうすればよいですか? (X秒/分/時間ごとに何かをしてください)
sleep();あなたのプログラムがX秒間非アクティブになることがわかっている限り、私のアプリはアクティブで働き、常に計算されている必要があります。
、私はC++に非常に新しいですし、ATMを学んで、この小さな(または大きな?)問題で私を助けてください:)
だから私はBOOSTライブラリを設定して、今、私はこのような何かをやっています。
boost::timer t;
while (true)
{
if (t.elapsed() > 1)
{
cout << t.elapsed() << endl;
t.restart();
}
}
これで十分ですか、より良い方法があるはずですか?ああ、それは非常に悪いです、私のCPUの25%を直感的に食べています。 :(
睡眠を()あなたが別のスレッドでそれを置く場合はオプションです。 –
正確には10秒でなければなりませんか?あなたのアプリは「すべての時間を計算している」ので、外側のループの1つにifステートメントをスローし、現在の時刻をチェックし、スケジュールされた時間の後であれば定期的な仕事関数を呼び出し、次に実行する必要があります。 –
PigBenとBenの両方が言ったことから、正確さはどれくらい必要ですか?スレッドが1つしかない場合は、おそらくそこに何らかの睡眠を取ることができます(おそらく10ミリ秒です)。ウィンドウでは 'Sleep(10);のようになり、* nixでは' usleep(10 * 1000);のようになります。 // 10マイクロ秒* 1000 = 10ミリ秒 ' – RageD