Timer a procedura

0

Mam procedure ktora kilkanaście razy wywoływana jest przez Timer. Uruchomianie zaczynam od ustawienia Enable:=True zas Interval ustawiony jest na 1 ms. Procedura ktora jest wywałana zapisuje pewne dane do tablicy (nie jest ona duza). Myslalem ze tym sposobem procedura ta bedzie wykonywana w rownych odstepach czasowy. Jednak nie zawsze tak odbywa sie.

Gdzie popełniam błąd ????

Kochzg

0

to Timer nie jest zbyt dokładny, a moze po psrostu nie daje sobie rady z tym zapisywaniem.
Możesz zawsze użyć nowego wątku i tam zrobic sobie timerka

0

ewentualnie DxTimer z pakietu DelphiX, albo poszukaj na forum bo o niedokładności Timera było już sporo napisane.

0

albo sciągnij sobie z www.torry.net TThreadTimer i git :]
btw: po co to napisałeś też temat w "Nietuzinkowe tematy" [???]

0

Nie chodzi mi oto czy ona bedzie wykonywana z dokładnościa 1 ms czy 1.1ms.
Powinna ona byc wywoływana w miare równo cykliczne. Zdarza sie ze najpierw ona wywołuje sie kilka razy szybko a potem czas wywołania spada (bywa ze znowu potrafi przyspieszyc).

zdrowka
Zbych

0

NO to może zależeć od tego co INNEGO w danym czasie program robi tudzież od wolnego miejsca w pamięci, zajęcia procesora przez inne procesy ( bo chyba na kompie nie jest właczona tylko Towja aplikacja :> ). Tak wiec na to składa sie wiele czynników ;)

0

Może dodatkowo posłuż się

GetTickCount

?

0

Praktycznie niemożliwe jest, żeby Twoja procedura wykonywała się w różnych odstępach czasu, w stosunku do czasu rzeczywistego. Jak wyżej wspomniano, nie tylko twój program jest uruchomiony w systemie.
Musiała by być to aplikacja napisana dla systemu czasu rzeczywistego (nie windows) :)
Pozdrawiam
GP

0

zrób nowy wątek, w wątku pętla, w pętli sleep i jakieś inne operacje.

1 użytkowników online, w tym zalogowanych: 0, gości: 1