AGB  ·  Datenschutz  ·  Impressum  







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

Systemdienst stresst CPU

Offene Frage von "RolfPolf"
Ein Thema von RolfPolf · begonnen am 16. Feb 2007 · letzter Beitrag vom 16. Feb 2007
 
RolfPolf

Registriert seit: 15. Mär 2006
17 Beiträge
 
Delphi 2005 Personal
 
#1

Systemdienst stresst CPU

  Alt 16. Feb 2007, 12:26
Hallo,
ich wage mich zum ersten Mal an Dienste heran und habe dazu mal alles was ich so an Tutorials und Foreneintragen gefunden habe abgegrast. Die ersten Testbeispiele funktionieren soweit auch (z.B.: dieses).

Jetzt habe ich mal ein ganz simples Bsp selber erstellt, welches über einen TTimer verfügt der alle x Sekunden eine Logdatei aktualisiert. Wenn ich den Dienst so starte, dann wird er nach dem Start sofort wieder beendet, weil er sich im Leerlauf befindet. Deshalb habe ich dann die folgende Ereignisprozedur eingebaut:

Delphi-Quellcode:
procedure TService1.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    ServiceThread.ProcessRequests(False);
  end;
end;
Die läuft auch, allerdings verursacht dieser Dienst dann mal permanent 50% CPU-Auslastung.
OK, die while-Schleife ist dafür verantwortlich. Lässt man sie allerdings weg, dann wird der Dienst nach dem Start auch sofort wieder beendet, weil er sich wieder im Leerlauf befindet. Wenn ich ihn in der While-Schleife mit Sleep schlafen lege, dann kann er nicht mehr beendet werden.

Ist es tatsächlich erforderlich, einen eigenen Thread zu erzeugen wenn man nur einen Dienst haben möchte, der alle 10 Sekunden eine Prozedur aufruft ohne dabei die CPU auszulasten? Oder wo ist da mein Denkfehler?
Danke für ein "auf die Sprünge helfen",
RolfPolf
  Mit Zitat antworten Zitat
 


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 11:56 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 by Thomas Breitkreuz