![]() |
[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:
Aber die ist nur dafür da, dass Windows den Service nicht vorzeitig beendet.
procedure TservAdminService.ServiceExecute(Sender: TService);
begin while not Terminated do ServiceThread.ProcessRequests(false); end; Oder kommt Windows 2000 damit nicht zurecht. MfG xZise |
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 |
Re: [Service] - Hohe Auslastung
Schreib doch einfach mal True als Parameter in den aufruf von ProcessRequests
MfG Klaus |
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