2012-03-19 14 views
6

Aby zwrócić użycie procesora za pomocą usługi WMI, należy zwrócić wartość PercentProcessorTime z Win32_PerfFormattedData_PerfOS_Processor? Jeśli nie, do jakiej klasy powinienem się zwrócić? Dzięki.Powracanie użycia procesora w WMI przy użyciu C#

+0

Spróbuj wyszukać [tutaj na to pytanie] (http://stackoverflow.com/questions/278071/how-to-get-the-cpu-usage-in-c-). Powinien odpowiedzieć na twoje pytanie – Icemanind

+0

Tak, klasa WMI jest odpowiednia dla [Win32_PerfFormattedData_PerfOS_Processor] (http://msdn.microsoft.com/en-us/library/windows/desktop/aa394271%28v=vs.85%29.aspx) uzyskać użycie procesora. – RRUZ

Odpowiedz

13
ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor"); 
foreach (ManagementObject obj in searcher.Get()) 
{ 
    var usage = obj["PercentProcessorTime"]; 
    var name = obj["Name"]; 
    Console.WriteLine(name +" : " + usage); 
} 

A dla miłośników LINQ

ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor"); 
var cpuTimes = searcher.Get() 
    .Cast<ManagementObject>() 
    .Select(mo => new 
     { 
      Name = mo["Name"], 
      Usage = mo["PercentProcessorTime"] 
     } 
    ) 
    .ToArray(); 
+0

Dzięki, tak właśnie ustawiłem moje. – jpavlov

+1

Może również: nowy ManagementObjectSearcher ("SELECT PercentProcessorTime FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_ Total" ") Get() Cast (). First(). Właściwości [" PercentProcessorTime "]. Value.ToString(); . Właściwości ["PercentProcessorTime"] .Value.ToString() – Sevin7

1

Wydaje się, że informacja jest również dostępna w WMI tutaj:

"select LoadPercentage from Win32_Processor"

"Nośność każdego procesora, uśredniona do ostatniej sekundy. Procesor załadunku odnosi się do całkowitego ciężaru obliczeniową dla każdego procesora w jednym czasie "

LUB:

"select LoadPercentage from CIM_Processor"

". Obciążenie procesora, uśrednione w ostatniej chwili, w procentach. "

LUB:

"select PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor" również wydaje się działać.


Uwaga: te często zwracać wiele wyników na rdzeniu procesora i muszą być sumowane, aby otrzymać całkowite zużycie procesora dla systemu jako całości, więc spojrzeć na to.

To pytanie i odpowiedź naprawdę mają więcej wspólnego z usługą WMI, ponieważ pobieranie informacji z usługi WMI przy użyciu języka C# to naprawdę inne pytanie i powinno być bardzo podobne w przypadku każdego zapytania WMI w języku C#.

Powiązane problemy