Problem podczas planowania zadań za pomocą funkcji clock ()
Chciałbym zaplanować zadania w różnych przedziałach czasowych: na 0,1 s, 0,9 s .... 2 s itd. Korzystam z funkcji zegara () C ++, która zwraca liczbę znaczników od początku symulacji i konwertuję liczbę znaczników na sekund przy użyciu CLOCKS_PER_SEC, ale zauważyłem, że zadanie nie jest zaplanowane, gdy chwila jest zmiennoprzecinkowa, ale gdy jest to liczba całkowita, to robi. Oto część kodu odpowiedzialnego za planowanie:
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 ;
W takim przypadku nie działa, ale kiedy zaplanuję zadanie, które ma zostać wykonane w ciągu 3 sekund, na przykład działa. Czy to problem precyzji?