Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi [Service] - Hohe Auslastung (https://www.delphipraxis.net/98465-%5Bservice%5D-hohe-auslastung.html)

xZise 27. Aug 2007 22:31


[Service] - Hohe Auslastung
 
Hallo DP,
ich programmiere gerade ein Service für die Schule um besser die Computer zu verwalten.
(Auch das Tool :) )
Dummerweise hat der Service nach der Installation auf einen Windows 2000 Rechner eine hohe Auslastung.
Wobei die Einzige Schleife folgende ist:
Delphi-Quellcode:
procedure TservAdminService.ServiceExecute(Sender: TService);
begin
  while not Terminated do
    ServiceThread.ProcessRequests(false);
end;
Aber die ist nur dafür da, dass Windows den Service nicht vorzeitig beendet.
Oder kommt Windows 2000 damit nicht zurecht.

MfG
xZise

messie 28. Aug 2007 11:19

Re: [Service] - Hohe Auslastung
 
Solange Dein Service läuft, wirst Du mit der Routine wohl Deinen Prozessor grillen. Außerdem kann es dauern, bis andere Routinen innerhalb Deines Service ausgeführt wird, weil Application.processmessages o.ä. fehlt.

Also entweder einen eigenen Thread generieren wo die Schleife mit Pausen abgearbeitet wird oder - was in dem Fall günstiger erscheint - mit Messages arbeiten. Da hab' ich zwar wenig Ahnung von aber es wird sicher eine Message geben, mit der Windows die Beendigung des Dienstes mitteilt und worauf Du reagieren kannst.

Grüße, Messie

DelphiKlaus 28. Aug 2007 11:31

Re: [Service] - Hohe Auslastung
 
Schreib doch einfach mal True als Parameter in den aufruf von ProcessRequests

MfG

Klaus

xZise 28. Aug 2007 14:50

Re: [Service] - Hohe Auslastung
 
Hmmm :) Vielleicht wars das ja nur xD


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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