Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   NT-Service starten und dann 50% CPU Auslastung (https://www.delphipraxis.net/95962-nt-service-starten-und-dann-50-cpu-auslastung.html)

ueding 16. Jul 2007 17:19


NT-Service starten und dann 50% CPU Auslastung
 
Hallo
ich habe mit diesem TUT einen Dienst erstellt
wenn ich jetzt diesen Dienst starte, habe ich 50% CPU Auslastung (dualCore CPU).
Ich habe nachstehenden Code geändert.

Delphi-Quellcode:
procedure TService1.Timer2Timer(Sender: TObject);
begin
 showMessage('timer 2');
end;
Zeitinterwal 10 Sekunden

Delphi-Quellcode:
procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin
  showMessage('OnStart');
  Started := True;
  timer2.Enabled := true;
   showMessage('Timer eingeschaltet')
end;
Was muss ich machen damit die CPU Auslastung zurück geht ?

Danke schon mal für Eure HILFE


Gregor

jbg 16. Jul 2007 17:21

Re: NT-Service starten und dann 50% CPU Auslastung
 
Du musst ein wenig Rechenzeit freigeben.
Delphi-Quellcode:
procedure TServiceExecutionRestriction.ServiceExecute(Sender: TService);
begin
  while not Sender.Terminated do
  begin
    Sender.ServiceThread.ProcessRequests(True); // Rechenzeit freigeben
  end;
end;

ueding 16. Jul 2007 17:32

Re: NT-Service starten und dann 50% CPU Auslastung
 
Danke für die schnelle Hilfe :hello:

geht

Gregor

Luckie 16. Jul 2007 17:45

Re: NT-Service starten und dann 50% CPU Auslastung
 
Ähm, was soll das ShowMessage in dem Dienst? Ein Dienst läuft in einer anderen WindowsStation auf einem anderen Desktop, den der Benutzer nie zu sehen bekommt, es sei denn es handelt sich um einen interaktiven Dienst. Diese stellen aber eine Sicherheitslück dar und Microsoft rät davon ab solche Dienste zu nutzen. Hinzukommt, dass Windows Vista aus eben diesen Gründen keine interaktiven Dienste mehr unterstützt.

SirThornberry 16. Jul 2007 18:14

Re: NT-Service starten und dann 50% CPU Auslastung
 
ich stimme luckie zu. Jedoch unterstützt Messagebox das anzeigen einer Message über alle Desktops hinweg. Ich glaub in der Hinsicht ist Vista weiterhin inkonsequent.

ueding 17. Jul 2007 07:39

Re: NT-Service starten und dann 50% CPU Auslastung
 
Hallo Luckie


Zitat:

Zitat von Luckie
Ähm, was soll das ShowMessage in dem Dienst? Ein Dienst läuft in einer anderen WindowsStation auf einem anderen Desktop, den der Benutzer nie zu sehen bekommt, es sei denn es handelt sich um einen interaktiven Dienst. Diese stellen aber eine Sicherheitslück dar und Microsoft rät davon ab solche Dienste zu nutzen. Hinzukommt, dass Windows Vista aus eben diesen Gründen keine interaktiven Dienste mehr unterstützt.

Der Dienst hat später keine ShowMessage mehr.

Den Dienst kann mit Projekt1.exe INSTALL Installieren,
mit Projekt1.exe UNINSTALL Deinstallieren.

Wie kann ich den Dienst denn starten ?

Projekt1.exe START geht nicht.

Danke

Gregor

sakura 17. Jul 2007 08:08

Re: NT-Service starten und dann 50% CPU Auslastung
 
Zitat:

Zitat von SirThornberry
ich stimme luckie zu. Jedoch unterstützt Messagebox das anzeigen einer Message über alle Desktops hinweg. Ich glaub in der Hinsicht ist Vista weiterhin inkonsequent.

Nein, aber MS hat eine spezielle API für Messageboxes für genau diesen Fall zur Verfügung gestellt, iirc.

...:cat:...

DP-Maintenance 17. Jul 2007 09:35

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.

tekkyeah 9. Mär 2009 11:21

Re: NT-Service starten und dann 50% CPU Auslastung
 
Hallo zusammen, interessanter Thread,
ich habe einen Dienst der wunderbar läuft, aber das gleiche Problem mit der Auslastung der CPU.
Dann habe ich das hier gefunden

Zitat:

Delphi-Quellcode:
procedure TServiceExecutionRestriction.ServiceExecute(Sender: TService);
begin
  while not Sender.Terminated do
  begin
    Sender.ServiceThread.ProcessRequests(True); // Rechenzeit freigeben
  end;
end;

Nur, wie kann ich das einbinden ?
Die Prozedur wird von Delphi (BDS 2006) immer abgelehnt...
Kann mir jemand weiterhelfen ?

Gruß
Holger

Luckie 9. Mär 2009 11:30

Re: NT-Service starten und dann 50% CPU Auslastung
 
Zitat:

Zitat von tekkyeah
Die Prozedur wird von Delphi (BDS 2006) immer abgelehnt...

Endlich mal was neues. Sonst heißt es immer "Es kommt ein Fehler." :mrgreen:

Überleg mal bitte, was wir jetzt wissen müssten, um dir helfen zu können.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:45 Uhr.
Seite 1 von 3  1 23      

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