QTime oder QTimer warten, für den timeout

Ich bin writting eine Qt-Anwendung, und ich habe eine vier-Stunden-loop (in einem separaten thread). In diesem vier-Stunden-Schleife, die ich habe:

  1. Sachen tun mit der seriellen Schnittstelle;
  2. warte eine Feste Zeitspanne;
  3. noch einige weitere Sachen mit der seriellen Schnittstelle;
  4. warten, eine beliebige Menge von Zeit.
  5. bei 500ms in der Vergangenheit, nicht mehr Zeug;
  6. Gehe zu 1. und wiederholen Sie den Vorgang für vier Stunden.

Derzeit ist meine Methode, dies zu tun ist wirklich schlecht, und stürzt auf einigen Computern. Ich habe eine ganze Menge code, aber der folgende Codeausschnitt grundsätzlich zeigt das problem. Die CPU geht auf ~100% und kann schließlich den computer zum Absturz bringen.

 void CRelayduinoUserControl::wait(int timeMS)
{
    int curTime = loopTimer->elapsed();
    while(loopTimer->elapsed() < curTime + timeMS);
}

Muss ich irgendwie warten für eine bestimmte Zeit zu übergeben, bevor es weiter mit dem Programm. Gibt es eine Funktion, die nur warten, für einige beliebige Zeit, während halten alle Timer gehen?

InformationsquelleAutor Jean-Luc | 2012-04-01

Schreibe einen Kommentar