Utwórz stoper

timer [instrukcje] dt
(timer [instrukcje] dt opóźnienie)
(timer [instrukcje] dt opóźnienie n)

timer funkcja dt
(timer funkcja dt opóźnienie)
(timer funkcja dt opóźnienie n)

timer sygnał dt
(timer sygnał dt opóźnienie)
(timer sygnał dt opóźnienie n)

Tworzy stoper, który w regularnych odstępach czasu dt (podanych w milisekundach) wykonuje listę instrukcji lub funkcję lub wysyła sygnał. Opcjonalnie można podać opóźnienie (w milisekundach) wykonania pierwszej iteracji oraz liczbę iteracji n, jaką ma wykonać stoper.

Przykład 1:

"t := (timer [(print :iter :dt :time)] 300 50 3)

Rezultat wykonania:
W każdym wierszu wynik wykonania pojedynczej iteracji: numer iteracji, czas od ostatniej iteracji i całkowity czas od uruchomienia stopera.

1 51.0078125 51.0078125
2 300.015625 351.0234375
3 300.0234375 651.046875

Przykład 2:
Funkcja wykonywana przez stoper ma dostęp do samego stopera (pierwszy argument funkcji) - umożliwia to np. programowe zatrzymanie stopera przy pomocy instrukcji stoptimer.

to fn :tx :iter :dt :time
  (print :iter :dt :time)
end

"t := (timer $fn 300 50 3)

Rezultat wykonania:
W każdym wierszu wynik wykonania pojedynczej iteracji: numer iteracji, czas od ostatniej iteracji i całkowity czas od uruchomienia stopera.

1 57.0078125 57.0078125
2 300.015625 357.0234375
3 300.0234375 657.046875

Przykład 3:

to onsignaltick :turtle :data
  (print :turtle :data)
end

"t := (timer "tick 300 50 3)

Rezultat wykonania:
W każdym wierszu wynik wykonania pojedynczej iteracji: nazwa żółwia i tablica zawierająca numer iteracji, czas od ostatniej iteracji i całkowity czas od uruchomienia stopera.

first {1 49.9921875 49.9921875}
first {2 300.0234375 350.015625}
first {3 302.015625 652.03125}

Zobacz także:

Stoper
Funkcja jako wartość
Obsługa zdarzeń i sygnałów

Spis treści