Problem beim Planen von Aufgaben mit der Funktion clock ()

Ich möchte Aufgaben in verschiedenen Zeitintervallen einplanen: bei 0,1 s, 0,9 s, 2 s usw. Ich verwende die C ++ - Funktion clock (), die die Anzahl der Ticks seit Beginn der Simulation zurückgibt, und wandle die Ticks in um Sekunden mit CLOCKS_PER_SEC, aber ich habe bemerkt, dass die Aufgabe nicht geplant ist, wenn der Moment ein Float ist, aber wenn es eine Ganzzahl ist, tut es. Hier der Teil des Codes, der für die Planung verantwortlich ist:

float goal = (float) clock() / CLOCKS_PER_SEC + 0.4 ;  // initially (float) clock() / CLOCKS_PER_SEC = 0 ; 
if ((float) clock() / CLOCKS_PER_SEC == goal) 
     do stuff ; 

In diesem Fall funktioniert es nicht, aber wenn ich die Ausführung der Aufgabe in 3 Sekunden einplane, funktioniert es beispielsweise. Ist es ein Problem der Präzision?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage