c#性能计数器设置计数器的原始值

c#性能计数器设置计数器的原始值,c#,performancecounter,C#,Performancecounter,我正在尝试将c#PerformanceCounter库作为System.Diagnostic的一部分。使用设置计数器的原始值时 公共长值{set;get;} 我正在将原始值传递给0。然而,我注意到计数器的最大值被重置为一个非常大的数字。计数器的先前值为2 有人能帮我指出我可能犯的任何错误吗?这是我的代码 using (PerformanceCounter ctr = new PerformanceCounter(Settings.Instance.SetSourceAppliacati

我正在尝试将c#PerformanceCounter库作为System.Diagnostic的一部分。使用设置计数器的原始值时

公共长值{set;get;}

我正在将原始值传递给0。然而,我注意到计数器的最大值被重置为一个非常大的数字。计数器的先前值为2

有人能帮我指出我可能犯的任何错误吗?这是我的代码

using (PerformanceCounter ctr = new     
PerformanceCounter(Settings.Instance.SetSourceAppliacationName, counter.ToString(), false))
{
    if (incrementCounter)
    {
        ctr.IncrementBy(value);
    }
    else
    {
        ctr.RawValue = value;
    }
}

我不认为你真的犯了错误

最大值不是PerformanceCounter本身的功能;它是监视工具(如PerfMon)的一部分。不能使用PerformanceCounter类设置它

您可能需要做的一件事是,在应用程序开始尝试将有用数据应用到RawValue之前,将RawValue设置为零。如果有多个应用程序使用单个实例类别(PerformanceCounterCategoryType.SingleInstance)或PerformanceCounterCategoryType.MultiInstance的相同实例名称(如“total”实例名称),这可能会很棘手


非常高的数字可能只是用于存储性能计数器变量的未初始化内存块中的某个随机数。由于多个应用程序可能会尝试通过实例化新的PerformanceCounter对象来访问正在进行的性能计数器,因此,根据设计,该实例化过程不会自动将该值设置为零

我不认为你真的犯了错误

最大值不是PerformanceCounter本身的功能;它是监视工具(如PerfMon)的一部分。不能使用PerformanceCounter类设置它

您可能需要做的一件事是,在应用程序开始尝试将有用数据应用到RawValue之前,将RawValue设置为零。如果有多个应用程序使用单个实例类别(PerformanceCounterCategoryType.SingleInstance)或PerformanceCounterCategoryType.MultiInstance的相同实例名称(如“total”实例名称),这可能会很棘手


非常高的数字可能只是用于存储性能计数器变量的未初始化内存块中的某个随机数。由于多个应用程序可能会尝试通过实例化新的PerformanceCounter对象来访问正在进行的性能计数器,因此,根据设计,该实例化过程不会自动将该值设置为零

如果PerfMon的整个开发团队不认为有必要将主要用户感兴趣的变量初始化为零,我会感到惊讶。如果PerfMon的整个开发团队不认为有必要将主要用户感兴趣的变量初始化为零,我会感到惊讶。