Diskussion:Gambas: Timer

Nach meinen Beobachtungen arbeitet der Timer bei GAMBAS nicht zuverlässig in dem Sinn, dass man sich nicht darauf verlassen kann, dass die Routine Timer1_Timer() pünktlich ausgeführt wird: Wenn gerade etwas anderes bearbeitet wird, dann wird das bis zu Ende ausgeführt, erst dann kommt Timer1_Timer dran. Das kann zu Problemen führen bis hin zur Unbrauchbarkeit des Programms. Man würde sich wünschen, dass die Routine mit höherer Priorität gestartet wird; noch besser wäre es, wenn man die Priorität setzen könnte.


Hier ein Programmbeispiel, für das man benötigt:

   einen Timer:   SekundenTakt
   einen Button:  Button1 
   Labels:        Datum
                  Zeit
                  Time0
                  Time1
   PUBLIC SUB Form_Open()
      'Timer starten
      SekundenTakt.Delay = 1 
      SekundenTakt.Enabled = TRUE
   END SUB 
   
   PUBLIC SUB SekundenTakt_Timer()
      Datum.Text = fHeute()
      Zeit.Text = fUhrzeit()
   END SUB
      
   PUBLIC SUB Button1_Click()
       DIM i AS Long
       DIM M AS Single
       DIM intMultiplikationen AS Integer = 50 * 1000 * 1000
    
       Time1.Text = ""
       Time0.Text = Zeit.Text
       WAIT 0.001
   
       FOR i = 0 TO intMultiplikationen
          M = 1234567.8 * 2345678.9 
       NEXT 
   
       WAIT 0.001
       Time1.Text = Zeit.Text
   END SUB
   
   PUBLIC FUNCTION fHeute() AS String
       DIM Tag AS String = CStr(Day(Now))
       DIM Mon AS String = CStr(Month(Now))
       DIM Jar AS String = CStr(Year(Now))
       IF Len(Tag) = 1 THEN Tag = "0" & Tag
       IF Len(Mon) = 1 THEN Mon = "0" & Mon
       RETURN Tag & ". " & Mon & ". " & Jar
   END FUNCTION 
   
   PUBLIC FUNCTION fUhrzeit() AS String
       DIM St AS String = CStr(Hour(Now))
       DIM Mi AS String = CStr(Minute(Now))
       DIM Se AS String = CStr(Second(Now))
       IF Len(St) = 1 THEN St = "0" & St 
       IF Len(Mi) = 1 THEN Mi = "0" & Mi 
       IF Len(Se) = 1 THEN Se = "0" & Se
       RETURN St & " : " & Mi & " : " & Se & " Uhr"
   END FUNCTION


Gruß Hans35

Zurück zur Seite „Gambas: Timer“.