Delphi-PRAXiS
Seite 6 von 8   « Erste     456 78      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Service & on Execute (https://www.delphipraxis.net/160218-service-execute.html)

value is NULL 3. Mai 2011 17:05

AW: Service & on Execute
 
Hm ich weiss das meine comments für Belustigung sorgen aber ich stehe wirklich am schlauch! :(

Was für Möglichkeiten gibt es denn noch? Kann ich mir die aktuelle zeit nicht in eine variable schreiben, 5 Minuten dazu adieren und im on execute Event die zeit Pollen ?! Oder würde das zu viele Ressourcen fressen?

Lg

DeddyH 3. Mai 2011 17:09

AW: Service & on Execute
 
Es wurden doch bereits Lösungsmöglichkeiten aufgezeigt, sowohl mit Timer als auch mit Sleep.

Bummi 3. Mai 2011 17:10

AW: Service & on Execute
 
Du hast etliche Möglichkeiten, was gefällt Dir den nicht an dem Beispiel von Rollstuhlfahrer?

value is NULL 3. Mai 2011 17:20

AW: Service & on Execute
 
Nun ja soweit ich das probiert habe komme ich mit sleep nicht weiter. Ich muss praktisch ein sleep von 5 Minuten einbauen dh der dienst ist ja zu diesem Zeitpunkt, also wenn er sich im sleep befindet, nicht zu bedienen besser gesagt nicht zu stoppen.

Die timer variante dürfte anscheinend die beste sein nur fehlt mir hierzu das Verständnis! Schliesslich muss ich den timer ja in der on execute procedure abfragen und das verstehe ich nicht ganz.

Nur mal damit ich das verstehe:
• timer := ttimer.create(Nil)
• Timer.enanled := TRUE
• und die Milisekunden
Muss ich in der on Start procedure einbauen

Beim on execute muss ich dann bei
While not terminated das on time einbauen und dann in eine von mir definierte procedure übergehen oder?!

Wäre die Möglichkeit welche ich oben beschrieben habe nicht auch möglich oder belaste ich den CPU zu sehr wenn ich im on execute Event meine startzeit variable permanent mit der aktuellen zeit vergleiche?!

Lg

DeddyH 3. Mai 2011 17:22

AW: Service & on Execute
 
Nimm doch einfach eine globale Variable oder besser ein privates Feld Deines Dienstes und zähle es hoch. Du kannst dann sowohl aus dem Timer-Event als auch aus der Execute-Methode darauf zugreifen. Genau so wurde das in den Beispielen auch gemacht. Wo hapert es denn noch?

Bummi 3. Mai 2011 17:28

AW: Service & on Execute
 
Du musst gar nichts machen, hast Du Dir das Beispiel mal angeschaut, es ausprobiert?
Einfacher geht es kaum.
Der Timer liegt auf dem "Form"
Über Intervall im Objektinspektor legst Du die Millisekunden fest, nach denen der Timer selbsttätig die Methode aufruft die Du im Objektinspektor unter Ereignisse/OnTimer siehst.

Wenn Du einen neuen Timer drauflegst auf
Ereignisse/OnTimer doppelklicken und Du bist in der Quelltextansicht der neu erstellten Methode.

Hier schreibst Du das rein was jedesmal nach Ablauf des Timerintervalls passieren soll.....

value is NULL 3. Mai 2011 17:37

AW: Service & on Execute
 
OMG jetzt kapier ich's, dh das zu machende wird dann in der procedure zb timer1time also die, die angelegt wird wenn ich doppelt drauf klicke.

Das heisst im on execute steht eigentlich nur timer.ontime := angelegte pricedure??!!

Bitte sag das ich's kapiert habe :-D

alfold 3. Mai 2011 17:41

AW: Service & on Execute
 
@value is NULL : irgendwas macht mich stutzig:gruebel:
Habe mir mal ein paar anderen Post von Dir angschaut.
Also so unbeholfen kannst Du ja nicht sein, das Du nicht mit dieser simplen Aufgabe klar kommst. Oder wie soll man sonst dieses vertsehen 'Du weist nicht wie ein timer funct/ wo soll ich was hinschreiben' etc.

Hast du dafür ne Erklärung?

DeddyH 3. Mai 2011 17:43

AW: Service & on Execute
 
Wenn Du das per Objektinspektor machst, ist die Methode bereits dem Event zugewiesen. Eine händische Zuweisung ist normalerweise nur dann nötig, wenn man die Komponente erst zur Laufzeit erzeugt oder Methoden dynamisch (d.h. situationsabhängig) zuweisen möchte.

generic 3. Mai 2011 17:52

AW: Service & on Execute
 
Timer & Dienst keine gute Idee.
Wie wäre es mit Thread-Synchronistationstechniken.

z.B. mit waitevent und einen Timeout?
Bei beenden des Dienstes wird das Event geschickt, ansonsten lässt du das warten einfach in das Timeout laufen.
So kann der Thread/Service sofort beendet werden oder er läuft einfach weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:21 Uhr.
Seite 6 von 8   « Erste     456 78      

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