如何:向性能计数器写入值

更新:2007 年 11 月

通过用一个正数或负数来增加计数器的当前原始值,可以向计数器写入值。这可通过使用 PerformanceCounter 类的 IncrementBy 方法来完成。

说明:

计数器按负数增加表示从计数器减去这个负数的绝对值。例如,用 3 这个值作为增量将使计数器的原始值增加三。用 –3 这个值作为增量将使计数器的原始值减少三。

此外,还可以使用 IncrementDecrement 方法来使计数器的值按 1 增加或减少。这些方法的处理速度比 IncrementBy 快得多。

您只能增加自定义计数器的值;默认情况下,通过 PerformanceCounter 组件实例与系统计数器进行的交互限于只读模式。必须首先将用来访问该计数器的组件实例的 ReadOnly 属性设置为 false,才能增加自定义计数器。

说明:

有些安全限制会影响您使用性能计数器的能力。有关更多信息,请参见 监视性能阈值的介绍

说明:

Microsoft Windows NT 4.0 版不完全支持 PerformanceCounter 类。您可从系统计数器中读取,但不能创建、写入或删除自定义计数器。

向性能计数器写入值

  1. 创建一个 PerformanceCounter 实例,并将它配置为与所需的类别和计数器进行交互。有关更多信息,请参见 如何:创建 PerformanceCounter 组件实例如何:配置 PerformanceCounter 组件实例

  2. 用以下方法之一写入值:

    要执行的操作

    调用的方法

    参数

    使原始值增加一

    Increment

    使原始值减少一

    Decrement

    使原始值增加大于一的值

    IncrementBy

    正整数

    使原始值减少大于一的值

    IncrementBy

    负整数

    将原始值重置为任何整数,而不是增加它

    RawValue

    正整数或负整数

    下面的代码显示如何以各种方式设置计数器的值。这段代码假定您正在使用一个 Windows 窗体应用程序,该应用程序包含一个名为 txtValue 的文本框和三个按钮:一个按钮按文本框中输入的数字增加原始值,一个按钮按 1 减少原始值,还有一个按钮将计数器的原始值设置为文本框中所设的值。

    Private Sub btnIncrement_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnIncrement.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.IncrementBy(CLng(txtValue.Text))
    End Sub
    
    Private Sub btnDecrement_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnDecrement.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.Decrement()
    End Sub
    
    Private Sub btnSetValue_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnSetValue.Click
        PerformanceCounter1.ReadOnly = False
        PerformanceCounter1.RawValue = CLng(txtValue.Text)
    End Sub
    
     protected void btnIncrement_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.IncrementBy(long.Parse(txtValue.Text));
        }
    
        protected void btnDecrement_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.Decrement();
        }
    
        protected void btnSetValue_Click(object sender, EventArgs e)
        {
            performanceCounter1.ReadOnly = false;
            performanceCounter1.RawValue = long.Parse(txtValue.Text);
        }
    

请参见

概念

监视性能阈值的介绍

性能计数器值检索