PerformanceCounterCategory(“GPU 引擎”) GetInstanceNames() System.InvalidOperationException:类别不存在

匿名
2024-06-04T06:10:52.93+00:00

var category = new PerformanceCounterCategory("GPU Engine");

var counterNames = category.GetInstanceNames()

问题:调用 GetInstanceNames() 会导致 exception:System.InvalidOperationException:Category 不存在,这是因为在 win11 启动或打开设置窗口并最小化窗口时,进程SystemSettings.exe已挂起。

即:当SystemSettings.exe被暂停时,会出现上述“类别不存在”的问题,如果终止SystemSettings.exe进程,或者最大化设置窗口恢复SystemSettings.exe进程,则没有这样的问题。所以这是Windows操作系统的问题吗?我不知道如何解决这个问题,似乎只有使用C++的方法。如何使用 C++ 获取实例名称()?

 

此问题由: PerformanceCounterCategory("GPU Engine") GetInstanceNames() System.InvalidOperationException: Category does not exist - Microsoft Q&A总结而来

Windows 开发 | Windows API - Win32
0 个注释 无注释
{count} 票

1 个答案

排序依据: 非常有帮助
  1. Tong Xu - MSFT 2,546 信誉分 Microsoft 外部员工
    2024-06-05T06:40:51.5066667+00:00

    你好,

    欢迎来到 Microsoft Q&A!

    您可以将 PdhExpandCounterPath“``\\GPU Engine(*)\\*"一起使用来获取所有实例。有关提供完全限定计数器路径的其他方法,请参阅创建查询。还可以尝试浏览性能计数器


    如果答案是正确的解决方案,请单击“接受答案”并请投赞成票。如果您对此答案有其他疑问,请点击“评论”。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    0 个注释 无注释

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。