Zeitverzögerung



  • Ich habe ein problem mit folgendem Code

    //zeit.h
    //Zur verzögerung von Ereignisen
    
    #ifndef inc_zeit
    #define inc_zeit
    
    #include <ctime>
    using namespace std;
    
    namespace storm {
    
      void sleep(int verz) {
    
        //Deklaration
        time_t start, finish;                     //start und finish der Zeitmessung
    
        //Anfangszeit
        time(&start);                             //Zeitmessung beginnt 
    
        //Schleife für Verzögerung
        do {
          time(&finish);                          //Zeitmessung endet
        } while(difftime(finish, start) < verz); //solange die verstrichene Zeit,
                                                  //nicht so groß ist wie die Verzögerung
                                                  //wird die finish zeitmessung wiederholt.
    
      }                                           //Ende Funktion sleep()
    
      void sleep_short(int verz) {
    
        //Deklaration
        time_t start, finish;                     //start und finish der Zeitmessung
    
        //Anfangszeit
        time(&start);                             //Zeitmessung beginnt 
    
        //Schleife für Verzögerung
        do {
          time(&finish);                          //Zeitmessung endet
        } while(((difftime(finish, start))*100) < verz); //solange die verstrichene Zeit,
                                                  //nicht so groß ist wie die Verzögerung
                                                  //wird die finish zeitmessung wiederholt.
    
      }                                           //Ende Funktion sleep()
    
    }                                             //Ende Namespace
    
    #endif
    

    die erste funktion funktioniert ohne probleme sie verzögert im sekundenbereich

    die zweite jedoch verzögert immer nur um 1s obwohl sie für zeitabstände im ms bereich gedacht ist.

    Weiß jemand voans liegt? oder hat einer ne bessere Idee für zeitabstände im ms bereich?



  • time gibt nur Sekunden zurück, was du meinst ist clock ().



  • stimmt!
    Da het ich selbst draufkommen können.

    Danke!!!!!!!


Anmelden zum Antworten