Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   C# CPU-Auslastung mit dem PerformanceCounter ermitteln (https://www.delphipraxis.net/66746-cpu-auslastung-mit-dem-performancecounter-ermitteln.html)

Luckie 3. Apr 2006 15:43


CPU-Auslastung mit dem PerformanceCounter ermitteln
 
Laut diesem Code: http://www.lcbridge.nl/vision/processorcategory.htm
Soll man so die CPU-Auslastung ermitteln können. Nur bekomme ich immer 0 raus, obwohl die Auslastung zwischen 6 und 8 Prozent liegt:

Code:
        private int GetCPULoad()
        {
            PerformanceCounter perfcnt = new PerformanceCounter();
            perfcnt.CategoryName = "Processor";
            perfcnt.CounterName = "% Processor Time";
            perfcnt.InstanceName = "_Total";
            perfcnt.MachineName = "Nestor";
           
            return Convert.ToInt32(perfcnt.NextValue());
        }
Was stimmt da schon wieder mal nicht? :gruebel:

faux 3. Apr 2006 15:48

Re: CPU-Auslastung mit dem PerformanceCounter ermitteln
 
Hallo!

Probiere mal für MachineName einen Punkt (".") einzusetzen, denn ich glaube das ist der NetBIOS-Computername des PCs dessen Wert du bekommen möchtest und ein . sollte der Lokale PC sein.

NACHTRAG:
Der erste Wert den NextValue() liefert ist übrigens auch bei mir immer 0, da du in deiner Methode jedoch jedes mal eine neue Instanz erzeugst, ist dies der Grund des Problems.
Lösung: Entweder einfach 2 mal aufrufen (Quick'n Dirty) oder mal in der MSDN nachsehen, wieso das so ist.

Grüße
Faux

Luckie 3. Apr 2006 15:59

Re: CPU-Auslastung mit dem PerformanceCounter ermitteln
 
Danke, das wars. Es muss global in der Klasse sein.


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