AGB  ·  Datenschutz  ·  Impressum  







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

Dienst mit 100% CPU-Last

Ein Thema von Catbytes · begonnen am 5. Okt 2006 · letzter Beitrag vom 5. Okt 2006
Antwort Antwort
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#1

Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:03
Hallo,

habe folgenden Test-Service geschrieben:

Delphi-Quellcode:
procedure ServiceController(CtrlCode: DWord); stdcall;
begin
  Service1.Controller(CtrlCode);
end;

function TService1.GetServiceController: TServiceController;
begin
  Result := ServiceController;
end;

procedure TService1.ServiceExecute(Sender: TService);
begin
  while not Terminated do
  begin
    ServiceThread.ProcessRequests(False);
  end;
end;
Läßt sich registrieren und starten - nur hat das Teil durchgehend 100% CPU-Last.

Weiß einer warum?
Catbytes
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#2

Re: Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:11
versuch mal in die while-Schleife ein sleep(1) reinzumachen
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#3

Re: Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:11
Hi,
das liegt an deiner while-Schleife, die wird immer wenn sie kann die Bedingung prüfen und prüfen und prüfen usw. Du kannst hier mehrere Dinge tun, einerseits kannst du einen bestimmten Zeitraum abwarten oder du fügst einfach in die Schleifen eine Application.ProcessMessages ein (erlaubt anderen Programmen die Nachrichtenabarbeitung), besser ist es aber immer, wenn du auf ein Ereignis/eine Nachricht warten kannst und den Prozess solange einfach schlafen legst.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#4

Re: Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:14
Mach aus dem
ServiceThread.ProcessRequests(False); ein
ServiceThread.ProcessRequests(True); und gut.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Benutzerbild von Catbytes
Catbytes

Registriert seit: 7. Sep 2002
Ort: Heckendalheim
353 Beiträge
 
Delphi XE5 Enterprise
 
#5

Re: Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:22
Zitat von freak4fun:
Mach aus dem
ServiceThread.ProcessRequests(False); ein
ServiceThread.ProcessRequests(True); und gut.
Danke - das wars.

Den Code habe ich übrigens von diesem Thread.

Sollte man das dort ändern, oder war ich zu blöde zum lesen?
Catbytes
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Dienst mit 100% CPU-Last

  Alt 5. Okt 2006, 15:30
Zitat von Catbytes:
Sollte man das dort ändern, oder war ich zu blöde zum lesen?
Ich hab da auch ne Weile dran gesessen hab dem netten MaBuSe jetzt eine PN geschickt.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  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 00:02 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz