如何:确定计数器和类别是否存在

更新:2007 年 11 月

可以使用 PerformanceCounterCategory 类的 CounterExists 方法,确定给定的性能计数器是否存在于本地或远程计算机上的特定类别中。可以在创建新的计数器前使用该方法,以免因为存在另一个同名的计数器而发生错误。

除了确定计数器是否存在以外,还可以使用 PerformanceCounterCategory 类的 Exists 方法确定给定类别是否存在。如果要创建自定义计数器,并想确定该计数器的类别是否已经存在,则可以使用此方法。如果您指定的类别已经创建,Create 方法将引发错误。

如果找到该项,ExistsCounterExists 方法将返回 true;如果没有找到该项,二者将返回 false。

确定计数器是否存在

  • 调用 PerformanceCounterCategory 类的 Exists 方法,并指定以下参数。

    参数

    CounterName

    要查询的计数器名称。

    CategoryName

    服务器上任何性能对象的类别。

    MachineName

    在其上定位类别和计数器的服务器。

    说明:

    在 Visual Basic 中,MachineName 参数是可选的;如果留空,则默认使用本地计算机。在 C# 中,如果您不想指定计算机名称,可以使用 Exists 方法的重载。

确定类别是否存在

  • 调用 PerformanceCounterCategory 类的 Exists 方法,并指定以下参数。

    参数

    CategoryName

    要查询的任何类别。

    MachineName

    在其上定位类别的服务器。

    下面的示例显示在创建类别和计数器之前,如何使用 If 语句确定类别是否存在:

    If Not (PerformanceCounterCategory.Exists("MyCat")) Then
        PerformanceCounterCategory.Create( _
           "MyCat", "Description", _
           PerformanceCounterCategoryType.SingleInstance, _
           "MyCounter", "Description")
    End If
    
         if (!System.Diagnostics.PerformanceCounterCategory.Exists("MyCat"))
            {
                System.Diagnostics.PerformanceCounterCategory.Create(
                   "MyCat", "Description", PerformanceCounterCategoryType.SingleInstance,
                   "MyCounter", "Description");
            }
    

请参见

任务

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

概念

类别和计数器管理

性能计数器值检索