Requête WMI - CPU LoadPercentage
Im la recherche d'une meilleure manière d'obtenir la charge du CPU en % avec WMI à partir de plusieurs systèmes(ce qui signifie des Processeurs différents, etc.).
Mon code fonctionne, mais je pense qu'il ya une meilleure façon d'obtenir plus de toute utilisation de l'UC (en%).
Des idées?
Vous en remercie d'avance!
SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");
ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();
foreach (ManagementObject queryObj in cpuUsageCollection)
{
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}
perCPU = perCPU /iCPU;
cpuUsageCollection.Dispose();
Console.WriteLine("LoadPercentage CPU: {0}", perCPU);
Vous devez vous connecter pour publier un commentaire.
Personnellement j'irais pour le Win32_PerfRawData_PerfOS_Processor classe parce qu'il est beaucoup plus précis. Vous aurez besoin pour interroger à la fois PercentProcessorTime et TimeStamp_Sys100NS. Ici vous pouvez trouver la formule exacte.