Seite 1 von 1

Abgelaufene Zeit überwachen

Verfasst: 31.01.2006 11:12
von Martin66119
Hallo an alle Spezialisten!

In einem Programm möchte ich in Intervallen von 15 Sekunden eine bestimmte Funktion genau einmal ausführen.

Global Beginn.l
Global Pruefe_Intervall.l

Procedure Intervall()
MessageRequester("Intervall", Stru(Pruefe_Intervall,#long),0)
EndProcedure

Beginn = Date()
Repeat
Pruefe_Intervall = Date()
If Pruefe_Intervall - Beginn >15
Intervall()
Beginn= Date()
Endif
Forever

Wenn jetz aber wegen einer bestimmten Funktion im Hauptprogramm das Programm stoppt (z.B. Bedienereingabe) funktioniert das mit der Differenzbildung und der Prüfung gegen > 15 Sekunden nicht so gut.

Gibt es auch eine Möglichkeit, dass ein weiteres parallellaufendes Programm den Ablauf bestimmter Zeiten überwacht und dann per Interrupt die gewünschte Funktion startet.

Danke für die Hilfe
Martin

Verfasst: 31.01.2006 11:28
von NicTheQuick
Lad dir von http://pbosl.purearea.net die PBOSL runter und benutz die Timer-Lib. Die ist wunderbar dafür geeignet.

Die Handhabung ist denkbar einfach:

Code: Alles auswählen

StartTimer(#Timer, 15000 , @Intervall())

Timer

Verfasst: 31.01.2006 13:27
von Martin66119
Das mit dem Timer geht ganz gut. Da gibt es nur einProblem!

Da ich bei bestimmte Daten alle x Sekunden oder auch x Minuten erfassen möchte ist das ganze mit dem "StartTimer" sehr gut. Aber wenn ich dann z.B. einmal pro Monat diese Daten auf die speichern will, weiß ich nicht ob das mit dem Timer auch noch geht! Weiß jemand ob das dann noch geht?

Martin

Verfasst: 31.01.2006 13:30
von Sylvia
Bei einem ca. monatlichen Ereignis - ob es da noch eine Rolle spielt, eine
Ungenauigkeit von einem evtl. Viertel-Stündchen zu haben ?

Hast du dich schon mal für "Threads" interessiert ?