创建PerformanceCounter时出现InvalidOperationException

时间:2012-06-18 08:17:01

标签: c# .net exception-handling performancecounter invalidoperationexception

我正在努力获得实际的可用内存。 它似乎是使用性能计数器最简单的解决方案。它在我的编码机上工作得很好,不幸的是我在目标计算机上得到了一个例外。 我使用Windows XP和.NET 3.5 你能帮我吗?

代码:

namespace TestConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            PerformanceCounter ramCounter = new PerformanceCounter("Memory", "Available Bytes");
        }
    }
}

例外:

Unhandled Exception: System.InvalidOperationException: Category does not exist.
   at System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter)
   at System.Diagnostics.PerformanceCounter.Initialize()
   at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName, Boolean
readOnly)
   at System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName)
   at TestConsole.Program.Main(String[] args) in D:\Projektarbeit\Bachelorarbeit\VS2010\Projekte\DiagStationControllerTe
stConsoleV1\TestConsole\Program.cs:line 15

2 个答案:

答案 0 :(得分:0)

异常消息说明了一切:

  

类别不存在。

平均类别“记忆”不存在。

答案 1 :(得分:0)

我无法解决根本问题,但是有一种解决方法是不使用PerformanceCounter,而是使用API​​调用,请参阅http://www.codeproject.com/Articles/1285/Calling-API-functions-using-C