ok, i.c. thnx...
(mensch ist noch garnicht so lange her, aber keinen plan mehr wo das steckt...)
...aber auch hier bräuchte man ne differenz, ab zeitpunkt SetTimer_() Aufruf...
gibts das nicht mit ner systemzeit als zeitpunkt?
Etwas zu einem Zeitpunkt ausführen? [gelöst]
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Weiß nicht, wie Du das meinst. Du setzt das passenste Interval (es gehen
auch mehrere) und den Rest machste im Callback, also selektieren nach
TimerID, bei mehreren Intervallen usw.
Um irgendwas erstmal zu Initialisieren kannste eine statische Variable oder
eine globale nehmen (If TimerAn = #True) o.ä.
auch mehrere) und den Rest machste im Callback, also selektieren nach
TimerID, bei mehreren Intervallen usw.
Um irgendwas erstmal zu Initialisieren kannste eine statische Variable oder
eine globale nehmen (If TimerAn = #True) o.ä.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
die Problemstellung von gekkonier war ja nur bedingt ein Regelmäßiger Intervall,
hier die 5min von seinem einen Programm, und die auch "nur" zu Geschäftszeiten.
bei der Generalisierung gehts dann ja nach Datum, Uhrzeit.
wenn ich also kein SetTimer_( ..., Sytemzeit, #einmal ) habe,
muss ich jeden Tag z.B. um Mitternacht meine Liste durchgehen,
und für jeden Task, der heute irgendwann gestartet werden soll,
die Zeitdifferenz berechnen und nen Starter-Callback anlegen,
der dann erst den Turnus startet.
also z.b. für 9:45h den Starter, der dann nen 10min Timer einrichtet,
wenn ein Task ab 9:45 alle 10min laufen soll.
hier die 5min von seinem einen Programm, und die auch "nur" zu Geschäftszeiten.
bei der Generalisierung gehts dann ja nach Datum, Uhrzeit.
wenn ich also kein SetTimer_( ..., Sytemzeit, #einmal ) habe,
muss ich jeden Tag z.B. um Mitternacht meine Liste durchgehen,
und für jeden Task, der heute irgendwann gestartet werden soll,
die Zeitdifferenz berechnen und nen Starter-Callback anlegen,
der dann erst den Turnus startet.
also z.b. für 9:45h den Starter, der dann nen 10min Timer einrichtet,
wenn ein Task ab 9:45 alle 10min laufen soll.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Wo ist das Problem, Intervall sind 10 * 60 * 1000 (10 Minuten), und wenn
der Timer ausgelöst wird, prüft er ob es nach 0:00 ist.
Laß doch den Timer zwischendurch sinnlos laufen, der erzeugt ein event,
das juckt doch niemanden, der belastet aber die CPU nicht und das
EventLoop von PB auch nicht.
der Timer ausgelöst wird, prüft er ob es nach 0:00 ist.
Laß doch den Timer zwischendurch sinnlos laufen, der erzeugt ein event,
das juckt doch niemanden, der belastet aber die CPU nicht und das
EventLoop von PB auch nicht.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
achso... der ruft eh immer die selbe routine auf.... (?)
muss man dann halt schlank halten.
ist halt etwas umständlicher für eine aufgabenstellung wie
um 0945 starte dieses Programm
um 1027 mach dieses
um 1203 mach jenes
und von 1500 bis 1600 machst du alle 3 minuten "möp"
muss man dann halt schlank halten.
ist halt etwas umständlicher für eine aufgabenstellung wie
um 0945 starte dieses Programm
um 1027 mach dieses
um 1203 mach jenes
und von 1500 bis 1600 machst du alle 3 minuten "möp"
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Ich setze meinen intervall etwas kleiner als die benötigte Genauigkeit.
Wenn ausgelöst, prüfe ich ob was zu tun ist, weil z.B. 09:45
Das führe ich aus, bzw. wenn das länger dauert, starte ich dafür einen
Thread, der genau das einmal macht und sich beendet.
Aber ich laße nicht durchweg einen Thread laufen, der auch noch Zeit
abwartet und ähnliches.
Brauche ich eine Minute Genauigkeit, so nehme ich einen Intervall von 20000 oder 30000, je nachdem wie wichtig die Genauigkeit ist. Ist Timer ausgelöst, prüfe ich ob was ansteht und tue es, bzw. tue nichts.
So simple sollte es sein.
Wenn ausgelöst, prüfe ich ob was zu tun ist, weil z.B. 09:45
Das führe ich aus, bzw. wenn das länger dauert, starte ich dafür einen
Thread, der genau das einmal macht und sich beendet.
Aber ich laße nicht durchweg einen Thread laufen, der auch noch Zeit
abwartet und ähnliches.
Brauche ich eine Minute Genauigkeit, so nehme ich einen Intervall von 20000 oder 30000, je nachdem wie wichtig die Genauigkeit ist. Ist Timer ausgelöst, prüfe ich ob was ansteht und tue es, bzw. tue nichts.
So simple sollte es sein.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
