私は定期的に特定のタスクを実行する必要があり、現在はnanosleepを使用しています。C++:より正確なタイミング間隔
タスクは、毎秒または10秒ごとに実行する必要があります。
がよりこれを行うには良い方法があります:
while(true)
{
doTask();
sleep();
}
ウォルター
私は定期的に特定のタスクを実行する必要があり、現在はnanosleepを使用しています。C++:より正確なタイミング間隔
タスクは、毎秒または10秒ごとに実行する必要があります。
がよりこれを行うには良い方法があります:
while(true)
{
doTask();
sleep();
}
ウォルター
スレッドライブラリを使用して、doTask()を実行するスレッドを作成できます。あなたのメインスレッドは寝ていて、1秒または10秒ごとに実行されます。
これはQTimerとQRunnableを使って行うことができます。
http://doc.qt.nokia.com/latest/qtimer.html
ドックによれば、解像度はほとんどの場合、約1ミリ秒です。あなたの必要に応じて、これで十分です。
これはC++とは関係なく、OSによって異なります。 「睡眠」の精度が十分ではないか? – ruslik
[C++クロスプラットフォーム高解像度タイマ]の複製が可能です(http://stackoverflow.com/questions/1487695/c-cross-platform-high-resolution-timer) –
私のアプリケーションはあまり安定していません - 私はドンログファイルで何が起こっているのかは分かりませんが、基本的には10秒ごとにファイルを保存する必要があります。私はそれが数時間走り、それが保存されるはずだったたくさんのファイルをスキップしているのを見ました。何が起こっているのかをどのように伝えることができますか? – Walter