2016-05-03 21 views
0

このCPU使用率をtaskmgrとして取得する方法は? C#

PerformanceCounter cpu_utilized = new PerformanceCounter("Processor", @"% Processor Time", @"_Total"); 
CounterSample a1 = cpu_utilized.NextSample(); 
Thread.Sleep(500); //tried other values, same result 
float a = CounterSample.Calculate(a1, cpu_utilized.NextSample()); 
string str = "CPU USAGE %: " + a; 
System.Console.Out.WriteLine(str); 

のようなコードを使用した結果はperfmon.exeとカウンタと同じですが、私はすでに試した、taskmgrによるショーなど、システム全体のCPU使用率を取得したいtaskmgr値から

を異なります代わりにNextValue()を使用しますが、結果は同じです...

どのようにするかの提案はありますか?私は他のカウンターを見つけてそれに何かを加えるべきですか?

詳細: 私は4つの物理コアを持つCPUを使用し、8つの論理コアてる のWindows 10 パフォーマンスモニタは約36% Taskmgrは約48%

答えて

0

パウロを示して示し、process hackerを見てみましょうしてみてください。 CPU使用率を把握するのは問題の1つになります。ワークセット、物理メモリ、ページング、tlbなどを扱うものは12倍も複雑です。

ソースコードはC#ではなく、C#で記述されています。しかし、あなたはそれを簡単に使うことができます。 私はC#のエキスパートではありませんが、その言語用のAPIがあれば、その背後にあるC APIを使用していることは間違いありません。

関連する問題