Der Timer startet nach einer gewissen Zeit. Damit der erste Timer-Handler aufgerufen wird, muss ich auf ein Minimum von timer.it_value.tv_sec Sekunden warten. Ich möchte, dass mein Zeithandler sofort nach der Settimer-Funktion aufgerufen wird.So starten Sie den Timer in c sofort
Wenn ich timer.it_value.tv_sec = 0 setze, stoppt der Timer.
Ich versuche, Mechanismus mit Timern ein- und auszuschalten.
timer.it_value.tv_sec = 0; // If I do this timer stops
timer.it_value.tv_usec = 0;
timer.it_interval.tv_sec = 2;
timer.it_interval.tv_usec = 0;
setitimer (ITIMER_REAL, &timer, NULL);
Um also sofort auszuführen, habe ich gesetzt timer.it_value.tv_usec = 1, aber es kostet 1 & mgr; s Verzögerung wie unten.
timer.it_value.tv_sec = 0;
timer.it_value.tv_usec = 1;// Here it is
timer.it_interval.tv_sec = 2;
timer.it_interval.tv_usec = 0;
setitimer (ITIMER_REAL, &timer, NULL);
Irgendein anderer Weg?
Warum setzen Sie 'it_value.tv_sec' nicht auf die gewünschte Anzahl von Sekunden und rufen Sie * explizit * die Timer-Handler-Funktion auf? Das explizite Aufrufen der Timer-Handler-Funktion entspricht dem Ablauf des Timers. –
Yeah ^^^^ Warum nicht einfach anrufen? –