我正在尝试使用System.Diagnostic的c#PerformanceCounter Library部分。使用
设置计数器的原始值时public long RawValue {set;得到; }
我正在将Rawalue传递给0.但是我注意到计数器的最大值被重置为非常大的数字。该计数器的先前值为2
有人可以帮助我,并指出我可能犯的任何错误,这是我的代码
using (PerformanceCounter ctr = new
PerformanceCounter(Settings.Instance.SetSourceAppliacationName, counter.ToString(), false))
{
if (incrementCounter)
{
ctr.IncrementBy(value);
}
else
{
ctr.RawValue = value;
}
}
答案 0 :(得分:1)
我不认为你真的犯了错误。
最大值不是PerformanceCounter本身的功能;它是监控工具的一部分(如PerfMon)。您无法使用PerformanceCounter类设置它。
您可能想要做的一件事是在应用程序开始尝试将有用数据应用到其中之前将RawValue设置为零。如果您有多个应用程序使用单个实例类别(PerformanceCounterCategoryType.SingleInstance),或者使用相同的实例名称(如“总”实例名称),那么这对于PerformanceCounterCategoryType.MultiInstance来说可能会非常棘手。
非常高的数字可能只是来自未初始化的内存块的一些随机数,用于存储性能计数器变量。由于多个应用程序可能会尝试通过实例化新的PerformanceCounter对象来访问正在进行的性能计数器,因此该实例化过程不会根据设计自动将该值设置为零。