![]() |
NT-Service starten und dann 50% CPU Auslastung
Hallo
ich habe mit diesem ![]() wenn ich jetzt diesen Dienst starte, habe ich 50% CPU Auslastung (dualCore CPU). Ich habe nachstehenden Code geändert.
Delphi-Quellcode:
Zeitinterwal 10 Sekunden
procedure TService1.Timer2Timer(Sender: TObject);
begin showMessage('timer 2'); end;
Delphi-Quellcode:
Was muss ich machen damit die CPU Auslastung zurück geht ?
procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);
begin showMessage('OnStart'); Started := True; timer2.Enabled := true; showMessage('Timer eingeschaltet') end; Danke schon mal für Eure HILFE Gregor |
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; |
Re: NT-Service starten und dann 50% CPU Auslastung
Danke für die schnelle Hilfe :hello:
geht Gregor |
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.
|
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.
|
Re: NT-Service starten und dann 50% CPU Auslastung
Hallo Luckie
Zitat:
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 |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
...:cat:... |
DP-Maintenance
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
|
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:
Die Prozedur wird von Delphi (BDS 2006) immer abgelehnt... Kann mir jemand weiterhelfen ? Gruß Holger |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
Überleg mal bitte, was wir jetzt wissen müssten, um dir helfen zu können. |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
|
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
Vielleicht stelle ich mich ja zu blöd an... procedure TServiceExecutionRestriction.ServiceExecute(Sender : TService); Wie binde ich das ein ? Gruß Holger |
Re: NT-Service starten und dann 50% CPU Auslastung
:roll: Das ist doch nur der Name der Klasse in dem Beispiel.
Meinst du nicht du solltest dich erst einmal mit den Grundlagen beschäftigen bevor du dich an so etwas wie einen Dienst machst? Erstell eine neue Dienstanwendung, dann geh im Objektinspektor unter Ereignisse auf OnExecute und klicke dort doppelt. Und dann ergänzt du den Code wie im Beispiel. |
Re: NT-Service starten und dann 50% CPU Auslastung
Gosh... Geile Antwort...
Ich habe mich schon damit befasst, sonst wäre meine Frage ja: Wie mache ich einen Dienst... und ich dachte es gäbe wirklich etwas oder jemanden, was/der mir da weiterhilft... Natürlich habe ich das längst in meiner Prozedur "ServiceExecute" drin... Nur ist die Auslastung trotzdem noch zu hoch... Habe einen Timer laufen, der jede Minute was tut... das dabei dann die CPU ausgelastet ist, kann ich verstehen... Aber dazwischen sollte doch die CPU-Last doch gegen 0 gehen... |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
|
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
Zitat:
Ja, wenn du es drin hast und nichts ändert, was passiert denn da noch in deinem OnExecute? |
Re: NT-Service starten und dann 50% CPU Auslastung
-- war Unsinn - gelöscht --
Grüße Klaus |
Re: NT-Service starten und dann 50% CPU Auslastung
Mal ProcessRequests(False) probiert?
|
Re: NT-Service starten und dann 50% CPU Auslastung
Es gibt keine Fehlermeldung...
Die einzig noch verbleibende Frage ist, warum die CPU-Last nicht runtergeht...
Delphi-Quellcode:
procedure TMeinService.ServiceExecute(Sender: TService);
begin while not Sender.Terminated do begin ServiceThread.ProcessRequests(False); end; end; |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
|
Re: NT-Service starten und dann 50% CPU Auslastung
Also wenn da wie du ja gepostet hast sonst nichts passiert, bleibt ja eigentlich nur der Timer.
Was passiert, wenn du den deaktivierst? Ist die Auslastung dann runter? |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
|
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
Selbst wenn ich (wie unten angegeben) den Timer nicht "enable"
Delphi-Quellcode:
procedure TmesoCRM_Service.ServiceStart(Sender: TService;
var Started: Boolean); var Ini: TIniFile; begin Timer1.Enabled := False; Ini := TIniFile.Create('meine.ini'); TimerInterval := Ini.ReadInteger('Connection', 'TimerInterval', 0); Ini.WriteDateTime('Exim', 'ServiceStarted', Now); Ini.Free; Timer1.Interval := TimerInterval*60000; // Timer1.Enabled := True; Started := True; end; |
Re: NT-Service starten und dann 50% CPU Auslastung
Ist der Timer im Objektinspektor aktiviert? Wenn der beim Start zunächst aus sein soll, dann sollte der da ausgeschaltet werden und nach den Startoperationen nur angeschaltet.
Trotzdem sollte der durch den Code ja deaktiviert werden. Wenn da kein Code ausgeführt wird, dann fällt mir aber auch nichts ein was die Auslastung erklären könnte. :gruebel: |
Re: NT-Service starten und dann 50% CPU Auslastung
Zitat:
Und der einzige ausführbare code sonst steht im timer-Event... Ansonsten ist das ein nackter Dienst... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:28 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-2025 by Thomas Breitkreuz