我正在使用较新的System.Diagnostics.PerformanceData api集来写入我的计数器,并希望同时从多个进程中递增/递减单个计数器。
我尝试以各种方式调整CounterSetInstanceType但没有成功:
如果我使用Multiple或MultipleAggregate,我总是在perfmon中看到一个实例,但每个进程确实有一个单独的计数器,它们会相互覆盖。单一反诉讼类型会发生相同的行为。
当我尝试使用gloablAggregate counteret类型的性能监视器似乎根本没有读取值。
答案 0 :(得分:1)
回答我自己的问题:
如此处所述:http://msdn.microsoft.com/en-us/library/windows/desktop/ee781345%28v=vs.90%29.aspx
您需要指定如何在清单文件中聚合计数器(通过设置每个计数器的聚合属性)。
似乎不这样做会导致计数器只停留在0 / undefined。
在globalAggregate的情况下,这非常有效。
在multipleAggregate的情况下,这仅对自动为反选项创建的_Total实例产生影响(因为将其定义为multipleAggregate)。所有其他实例仍然是旧行为。
似乎还有一个'MultipleInstanceAggregate'计数器类型,但据我所知,它不受清单模式的支持。 (见:http://msdn.microsoft.com/en-us/library/system.diagnostics.performancedata.countersetinstancetype)