1

Instance 'taskmgr' does not exist in the specified Category.ctor で params を渡さないと、次のコードでエラーがスローされる理由

var cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Processor";
cpuCounter.CounterName = "% Processor Time";            
cpuCounter.InstanceName = "taskmgr";
cpuCounter.NextValue();

しかし、ctor に params を渡して同じことをしても、エラーは発生しません。

var cpuCounter = new PerformanceCounter(
    "Processor",
    "% Processor Time",
    "taskmgr");
cpuCounter.NextValue();

更新: 「taskmgr」だけでなく、すべてのプロセス名を試しましたが、結果は同じです!

何が問題ですか?

4

2 に答える 2

1

はCPUに関するものであるため、このカテゴリでtaskmgr使用できるインスタンスはありません...ProcessorProcessor

あなたはおそらくProcess、期待どおりに動作することを意味していました:

var cpuCounter = new PerformanceCounter();
cpuCounter.CategoryName = "Process";
cpuCounter.CounterName = "% Processor Time";            
cpuCounter.InstanceName = "taskmgr";
cpuCounter.NextValue();
于 2012-03-05T16:29:17.203 に答える
0

CategoryName/に正しい値を指定していますInstanceNameか? InstanceNameのドキュメントから、少なくとも"Processor".

それを提供する"Process"CategoryName、プロセスを見ることができます。

于 2012-03-05T16:28:47.353 に答える