none
Win7下创建PerformanceCounter失败, 怎么回事 RRS feed

  • 问题

  • 各位大侠好:

    最近需要在.NET中获取CPU占用率, 内存占用率.

    通过调查发现PerformanceCounter可以实现这个功能, 并且搜到一篇CodeProject的教程如下

    http://www.codeproject.com/KB/system/syscountersapp.aspx

     经验证, 该教程内的代码在Server2003下工作正常, 但是在Win7下创建PerformanceCounter对象时出错

    也就是执行到cpuCounter = new PerformanceCounter
                ("Processor", "% Processor Time", "_Total", machineName);
    出错的. 错误信息如下:

    输入字符串的格式不正确。

       在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
       在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
       在 System.Int32.Parse(String s, IFormatProvider provider)
       在 System.Diagnostics.PerformanceCounterLib.GetStringTable(Boolean isHelp)
       在 System.Diagnostics.PerformanceCounterLib.get_NameTable()
       在 System.Diagnostics.PerformanceCounterLib.get_CategoryTable()
       在 System.Diagnostics.PerformanceCounterLib.CounterExists(String category, String counter, Boolean& categoryExists)
       在 System.Diagnostics.PerformanceCounterLib.CounterExists(String machine, String category, String counter)
       在 System.Diagnostics.PerformanceCounter.Initialize()
       在 System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName, Boolean readOnly)
       在 System.Diagnostics.PerformanceCounter..ctor(String categoryName, String counterName, String instanceName)
       在 SysCounters.frmMainForm.InitCounters() 位置 D:\Technology Documents\PerformanceCounterCategory\syscountersappsource\MainForm.cs:行号 84

     

    请问这是因为Win7的底层有变动, 导致.NET类库不正常么? 还是说需要对Win7做出相应的配置? 谢谢!

    2011年5月19日 2:50

答案