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
Abgelaufene Zeit überwachen
- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
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:
Die Handhabung ist denkbar einfach:
Code: Alles auswählen
StartTimer(#Timer, 15000 , @Intervall())
-
- Beiträge: 282
- Registriert: 03.01.2005 11:36
Timer
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
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