![]() |
Timer maximum
Hallo!
Ich will, dass mein Timer alle 216000000 Millisekunden (also jede Stunde) ausgeführt wird. Ist das zu hoch? Wo liegt die Obergrenze? Wenns nicht geht, wie mach ich das sonst? danke schon mal... |
Re: Timer maximum
Hallo!
Müsste eigentlich funktionieren, wenn nicht dann frage doch einfach jede Minute oder alle 10s oder wie auch immer die Uhrzeit ab und ermittel so die vergangene Stunde. |
Re: Timer maximum
Ist eine Stunde nicht 3600000 Millisekunden :shock:
Da der Intervall als Cardinal deklariert ist sind maximal 4294967295 Millisekunden möglich, glaub ich. Gruß s14 |
Re: Timer maximum
Du könntest auch 2 (oder mehr) Timer verwenden, die sich gegenseitig starten/beenden! :stupid:
|
Re: Timer maximum
F1!
Code:
TTimer Determines the amount of time, in milliseconds, that passes before the timer component initiates another OnTimer event. property Interval: Cardinal; typ: Cardinal range: 0..4294967295 unsigned 32-bit |
Re: Timer maximum
Zitat:
|
Re: Timer maximum
Du kannst den Timer auch jede Sekunde ausführen und mit TDateTime Werten gucken ob eine Stunde rum ist...wäre vielleicht sogar besser, weil hohe Systemauslastung meiner Erfahrung nach den OnTimer Event verzögern kann.
Edit: sry mir ist gmarts Antwort entgangen. -Dani |
Re: Timer maximum
Zitat:
|
Re: Timer maximum
Das glaube ich nicht, denn wenn man die Zeit verstellt müsste der Timer dann ja auch ausgelöst werden und das tut er bei mir nicht....
|
Re: Timer maximum
Auch der Timer ist nur ein Thread. Und wenn man ihm die Priorität strittig macht - z.B. mit einem anderen Programm, dass gerade auf hoher Priorität was aufwändiges rechnet, so kann ein Timer schonmal gut daneben liegen ;)
Win ist halt kein Echtzeit-OS. Da kann man nichts dran machen. |
Re: Timer maximum
Zitat:
Wenn nun aber irgend ein Programm die CPU zu 100% auslastete oder ich eine DirectX Vollbild-Anwendung startete, wurde die Anzeige nicht mehr häufig genug (bzw. gar nicht) aktualisiert und sie zeigte viel zu hohe Werte an (z.B. 1892 kb/s auf ner TDSL-Leitung.) Daraus schloss ich, dass der Timer wohl aufgrund der Belastung nicht oft genug ausgeführt worden war. Edit: und wieder zu langsam...nach dem was ich gehört habe, haben gewöhnliche Timer allerdings keinen eigenen Thread, sondern sind eher sowas wie verborgene Fenster, die im Hauptthread mitverarbeitet werden.Der Traffic-Zähler hatte IDLE_PRIORITY, das wird wohl die Ursache für die Anfälligkeit meiner Timer gewesen sein. Aber ich schweife ab :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz