我正试图解决旧的“How do I get a Windows Performance Counter for the current process”问题。基本上我是enumerating Process Object instances来获取Process对象的列表,然后我可以查询它们的进程ID并与我自己进行比较。
基于此,我可以使用正确的实例索引构建一个性能计数器路径(以创建类似于\Process(my_program#3)\<counter>
的东西),然后我可以使用它来查询我感兴趣的任何计数器。但是会发生什么如果my_program的其他一个或多个实例在PdhAddCounter通话之前退出?如果我理解正确,这将意味着我的反路径现在指的是不同的进程或现在无效。在查询进程ID时,它们甚至可能会消失......
在我可以使用它来获取计数器句柄之前,如何防止计数器路径变为无效?
答案 0 :(得分:0)
我认为最安全的方法是观察所有流程对象,每次收集数据时都会查找具有所需流程ID的数据。