Prozesse auslesen mit WMI

Ange2204

Grünschnabel
Hallo zusammen!
Ich möchte eine Art Server Überwachung schreiben. Soweit läuft auch alles ganz gut. Ich kann Prozesse auslesen plus die CPU-Auslastung. Das einzige Problem welches dabei auftritt ist die Zeit. Das ganze dauert viel zu lange. Das Programm braucht mindestens eine Minute um diese Dinge auszulesen. Wüsstet ihr etwas, was den ganzen Vorgang beschleunigen würde?
Hier ist die Methode, welche die CPUAuslastung ausliest

Code:
public static byte CPU()
        {
            ManagementPath mp = new ManagementPath("Win32_Processor");
            byte Usage = 0;
            try
            {
                ManagementClass mc = new ManagementClass(mp, null);
                ManagementObjectCollection procs = mc.GetInstances();
                foreach(ManagementObject mo in procs)
                {
                    string DeviceID = "";
                    
                    foreach(PropertyData pd in mo.Properties)
                    {
                        if(pd.Name == "DeviceID")
                            DeviceID = pd.Value.ToString();
                        if(pd.Name == "LoadPercentage")
                            Usage = Convert.ToByte(pd.Value.ToString());   
                    }
                }
            }
            catch(Exception ex)
            {
              Console.WriteLine(ex.Message);
            }
            return Usage;
        }
 
Zuletzt bearbeitet:
Zurück