类别不存在。在为 Ram 使用创建性能计数器时
Posted
技术标签:
【中文标题】类别不存在。在为 Ram 使用创建性能计数器时【英文标题】:Category does not exist. While Creating performance counter for Ram usage 【发布时间】:2016-09-06 11:18:21 【问题描述】:这是代码,我正在尝试运行以获取内存使用情况。
int main(array<System::String ^> ^args)
PerformanceCounter^ ramCounter;
try
Console::WriteLine(L"Hello World");
ramCounter = gcnew PerformanceCounter("Memory", "Available MBytes");
Console::WriteLine(L"Memory usgae:"+ramCounter->NextValue()+L"MB");
catch(Exception^ e)
Console::WriteLine("Error Message: "+e->Message);
Console::WriteLine(e->StackTrace);
finally
if(ramCounter!=nullptr)
ramCounter->Close();
Console::WriteLine("Press any key to exit");
Console::ReadLine();
return 0;
但是我遇到了异常
错误信息:类别不存在。
错误消息堆栈跟踪: 在 System.Diagnostics.PerformanceCounterLib.CounterExists(字符串 机器,字符串类别,字符串计数器)在 System.Diagnostics.PerformanceCounter.InitializeImpl() 在 System.Diagnostics.PerformanceCounter..ctor(字符串类别名称, 字符串计数器名称,字符串实例名称,布尔只读)在 System.Diagnostics.PerformanceCounter..ctor(字符串类别名称, 字符串 counterName) 在 main(String[] args) 中 c:\用户\文档\视觉工作室 2012\projects\consoleapplication1\consoleapplication1\consoleapplication1.cpp:line 31
关于这个的任何想法..
【问题讨论】:
这可能对你有帮助social.msdn.microsoft.com/Forums/vstudio/en-US/… 您确定这是 C#(如标签中所述)吗?在我看来更像 C++。 @GoodNightNerdPride 这是微软 C++ 的一个特殊“版本”,c++/cli。 【参考方案1】:这可能是本地化问题。在我的机器上,您的代码也不起作用,因为它的语言是德语。因此我不得不用
创建计数器 gcnew PerformanceCounter("Arbeitsspeicher", "Verfügbare MB")
您可以通过浏览Performance Monitor 中的可用性能计数器找到本地化名称。
还有一种以独立于语言的方式检索计数器数据的方法。详情请见this answer。
【讨论】:
以上是关于类别不存在。在为 Ram 使用创建性能计数器时的主要内容,如果未能解决你的问题,请参考以下文章
RawFraction 性能计数器即使在删除性能类别后仍保持其状态