私はQtアプリケーションを書いていますが、私は別のスレッドで4時間のループを持っています。その4時間のループでは、私は:QTimeまたはQTimerがタイムアウトを待つ
- シリアルポートでものをする;
- 一定の時間待機します。
- シリアルポートでもう少しのことをしてください。
- 任意の時間待機します。
- 500msを過ぎると、さらに処理が行われます。
- 1.に移動し、4時間繰り返します。
現在のところ、私のやり方は非常に悪く、一部のコンピュータがクラッシュします。私はたくさんのコードを持っていますが、次のスニペットは基本的に問題を示しています。 CPUが〜100%になり、最終的にコンピュータがクラッシュする可能性があります。
void CRelayduinoUserControl::wait(int timeMS)
{
int curTime = loopTimer->elapsed();
while(loopTimer->elapsed() < curTime + timeMS);
}
プログラムを続行する前に、何らかの時間が経過するのを待つ必要があります。すべてのタイマーを保ちながら、任意の時間だけ待つ機能がありますか?
http://stackoverflow.com/questions/11996706/qt-c-wait-till-specific-time-to-execute-function/14144614#14144614 – formiaczek