AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Dienst und Timer

Ein Thema von MechMac666 · begonnen am 15. Dez 2020 · letzter Beitrag vom 18. Dez 2020
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#1

AW: Dienst und Timer

  Alt 15. Dez 2020, 15:56
Demnach ist die Wahrscheinlichkeit geringer, dass die Message des Timer nicht verarbeitet werden kann, aber wenn doch, dann ist es die Schuld des Entwicklers.
Wenn ich diesen Satz richtig interpretiere, spricht also nichts gegen die Verwendung von Timern in einem Service, was für den Threadersteller ja bedeuten würde, dass er sich wegen seiner bisherigen Vorgehensweise keine Sorgen zu machen braucht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.550 Beiträge
 
Delphi 12 Athens
 
#2

AW: Dienst und Timer

  Alt 15. Dez 2020, 15:58
mmmmmmja

So lange er nicht durch irgendwas Anderes den Hauptthread blockiert. (Entslosschleife oder Deadlock in einem eigenen Code im Hauptthread)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.598 Beiträge
 
Delphi 7 Professional
 
#3

AW: Dienst und Timer

  Alt 15. Dez 2020, 16:06
ok.

Unter keine Sorgen machen verstehe ich, dass der Service so progammiert ist, dass er keine Teile enthält (wissentlich oder unwissentlich), die eine Nutzung von Timern sowieso ausschließen bzw. (annähernd) unmöglich machen, also eigentlich das:
Zitat von himitsu:
dann ist es die Schuld des Entwicklers
kann ausgeschlossen werden.

Bzw.: Ein derartiger Service würde, auch ohne Timer, vermutlich nicht vernünftig laufen
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
989 Beiträge
 
Delphi 6 Professional
 
#4

AW: Dienst und Timer

  Alt 15. Dez 2020, 16:53
Hmm..

Wenn es nicht zu genau sein soll, reicht auch eigentlich:

Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
var
  tmpTime : TDateTime;
begin
  tmpTime := now;
  while not Terminated do begin
    if SecondsBetween(tmpTime, now) >= 20 then begin
      tmpTime := now;
      // Mache deine Timeraktion...
    end;
    Sleep(1);
    ServiceThread.ProcessRequests(false);
  end;
end;
Damit hast Du einen ~20 Sekundentimer

Ganz ohne Messages..
(Ja ich Verwende Delphi 6 Pro und will NICHT wechseln!)
  Mit Zitat antworten Zitat
MechMac666

Registriert seit: 9. Nov 2008
95 Beiträge
 
#5

AW: Dienst und Timer

  Alt 18. Dez 2020, 22:13
Danke für die Antworten,

mittlerweile läuft der Dienst auf dem Server und es gab bisher keinerlei Probleme.
Ich selbst hatte mit Timern auch noch nie Probleme, mich hatten nur diverse Threads verunsichert.
Und zeitlich genau muss das in meinem Fall auch nicht sein.
Ob die Aktion nun eine Sekunde früher oder später ausgelöst wird ist total egal.
Passt also

Gruß, Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:52 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