创建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:ProjektarbeitBachelorarbeitVS2010ProjekteDiagStationControllerTe
stConsoleV1TestConsoleProgram.cs:line 15

异常消息说明了一切:

类别不存在。

平均类别“内存”不存在。


我无法解决潜在的问题,但有一个解决方法,不使用PerformanceCounter,但API调用,请参阅http://www.codeproject.com/Articles/1285/Calling-API-functions-using-C

链接地址: http://www.djcxy.com/p/62935.html

上一篇: InvalidOperationException when creating PerformanceCounter

下一篇: Why is XmlSerializer throwing an InvalidOperationException?