WMIを使用してCPU使用率を返すには、Win32_PerfFormattedData_PerfOS_ProcessorからPercentProcessorTimeを返しますか?そうでなければ、どのクラスを見てみるべきですか?ありがとう。C#を使用したWMIでのCPU使用率の復帰
6
A
答えて
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);
}
そして、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();
1
情報はここでWMIにも利用可能であるように思える:
"select LoadPercentage from Win32_Processor"
"各プロセッサの負荷容量は、平均で1秒前です。プロセッサ負荷は一度に各プロセッサのための総計算負荷を指し、 "
OR:
"select LoadPercentage from CIM_Processor"
" は、プロセッサの負荷、にわたって平均しました最後の分をパーセンテージで表します。」
OR:
"select PercentProcessorTime from Win32_PerfFormattedData_PerfOS_Processor"
も同様です。
注:これらは多くの場合、CPUコアごとに複数の結果を返すと、システム全体の総CPU使用率を取得するために合計する必要があるので、そのために見えます。
この質問と回答は、C#でWMIから情報を取得することは実際には異なる質問であり、C#でのWMIクエリと非常に似ているはずです。
関連する問題
[この質問はこちら](http://stackoverflow.com/questions/278071/how-to-get-the-cpu-usage-in-c)をご覧ください。それはあなたの質問に答える必要があります – Icemanind
はい[Win32_PerfFormattedData_PerfOS_Processor](http://msdn.microsoft.com/en-us/library/windows/desktop/aa394271%28v=vs.85%29.aspx)WMIクラスは、 CPU使用率を取得します。 – RRUZ