PerformanceCounterCategory.Exists Método

Definición

Determina si la categoría está registrada en el sistema.

Sobrecargas

Nombre Description
Exists(String)

Determina si la categoría está registrada en el equipo local.

Exists(String, String)

Determina si la categoría está registrada en el equipo especificado.

Exists(String)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Determina si la categoría está registrada en el equipo local.

public:
 static bool Exists(System::String ^ categoryName);
public static bool Exists(string categoryName);
static member Exists : string -> bool
Public Shared Function Exists (categoryName As String) As Boolean

Parámetros

categoryName
String

Nombre de la categoría del contador de rendimiento que se va a buscar.

Devoluciones

true si la categoría está registrada; de lo contrario, false.

Excepciones

El categoryName parámetro es null.

El categoryName parámetro es una cadena vacía ("").

Error en una llamada a una API del sistema subyacente.

Código que se ejecuta sin privilegios administrativos intenta leer un contador de rendimiento.

Ejemplos

En el ejemplo de código siguiente se determina si existe un PerformanceCounterCategory objeto denominado "orders". Si no es así, crea el PerformanceCounterCategory objeto mediante un CounterCreationDataCollection objeto que contiene dos contadores de rendimiento.

if (!PerformanceCounterCategory.Exists("Orders"))
{
    CounterCreationData milk = new CounterCreationData();
    milk.CounterName = "milk";
    milk.CounterType = PerformanceCounterType.NumberOfItems32;

    CounterCreationData milkPerSecond = new CounterCreationData();
    milkPerSecond.CounterName = "milk orders/second";
    milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;

    CounterCreationDataCollection ccds = new CounterCreationDataCollection();
    ccds.Add(milkPerSecond);
    ccds.Add(milk);

    PerformanceCounterCategory.Create("Orders", "Number of processed orders",
        PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then        
    Dim milk As New CounterCreationData()
    milk.CounterName = "milk"
    milk.CounterType = PerformanceCounterType.NumberOfItems32
    
    Dim milkPerSecond As New CounterCreationData()
    milkPerSecond.CounterName = "milk orders/second"
    milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
    
    Dim ccds As New CounterCreationDataCollection()
    ccds.Add(milkPerSecond)
    ccds.Add(milk)
    
    PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
           PerformanceCounterCategoryType.SingleInstance, ccds)
End If

Comentarios

El uso del Exists método puede dar lugar a una penalización de rendimiento notable, mientras que todos los contadores de rendimiento de la máquina se comprueban si hay disponibilidad. Si solo está escribiendo en un contador de rendimiento, puede evitar la búsqueda global de contadores de rendimiento mediante la creación del contador de rendimiento cuando se instala la aplicación y suponiendo que la categoría existe al acceder al contador. No hay ninguna manera de evitar la búsqueda de contadores de rendimiento al leer desde contadores de rendimiento.

Note

Para leer los contadores de rendimiento de una sesión de inicio de sesión no interactiva en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar sus privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo Usuarios del Monitor de rendimiento.

En Windows Vista y versiones posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignan dos tokens de acceso en tiempo de ejecución: un token de acceso de usuario estándar y un token de acceso de administrador. De forma predeterminada, está en el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Puede hacerlo al iniciar una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indicando que desea ejecutar como administrador.

Consulte también

Se aplica a

Exists(String, String)

Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs
Source:
PerformanceCounterCategory.cs

Determina si la categoría está registrada en el equipo especificado.

public:
 static bool Exists(System::String ^ categoryName, System::String ^ machineName);
public static bool Exists(string categoryName, string machineName);
static member Exists : string * string -> bool
Public Shared Function Exists (categoryName As String, machineName As String) As Boolean

Parámetros

categoryName
String

Nombre de la categoría del contador de rendimiento que se va a buscar.

machineName
String

Nombre del equipo que se va a examinar para la categoría.

Devoluciones

true si la categoría está registrada; de lo contrario, false.

Excepciones

El categoryName parámetro es null.

El categoryName parámetro es una cadena vacía ("").

O bien

El machineName parámetro no es válido.

Error en una llamada a una API del sistema subyacente.

No se encuentra la ruta de acceso de red.

El autor de la llamada no tiene el permiso necesario.

O bien

Código que se ejecuta sin privilegios administrativos intenta leer un contador de rendimiento.

Ejemplos

En el ejemplo siguiente se determina si existe un PerformanceCounterCategory objeto denominado Orders . Si no existe, el ejemplo crea el PerformanceCounterCategory objeto mediante un CounterCreationDataCollection objeto que contiene dos contadores de rendimiento.

if (!PerformanceCounterCategory.Exists("Orders"))
{
    CounterCreationData milk = new CounterCreationData();
    milk.CounterName = "milk";
    milk.CounterType = PerformanceCounterType.NumberOfItems32;

    CounterCreationData milkPerSecond = new CounterCreationData();
    milkPerSecond.CounterName = "milk orders/second";
    milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;

    CounterCreationDataCollection ccds = new CounterCreationDataCollection();
    ccds.Add(milkPerSecond);
    ccds.Add(milk);

    PerformanceCounterCategory.Create("Orders", "Number of processed orders",
        PerformanceCounterCategoryType.SingleInstance, ccds);
}
If Not PerformanceCounterCategory.Exists("Orders") Then        
    Dim milk As New CounterCreationData()
    milk.CounterName = "milk"
    milk.CounterType = PerformanceCounterType.NumberOfItems32
    
    Dim milkPerSecond As New CounterCreationData()
    milkPerSecond.CounterName = "milk orders/second"
    milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32
    
    Dim ccds As New CounterCreationDataCollection()
    ccds.Add(milkPerSecond)
    ccds.Add(milk)
    
    PerformanceCounterCategory.Create("Orders", "Number of processed orders", _
           PerformanceCounterCategoryType.SingleInstance, ccds)
End If

Comentarios

El uso del Exists método puede dar lugar a una penalización de rendimiento notable, mientras que todos los contadores de rendimiento de la máquina se comprueban si hay disponibilidad. Si solo está escribiendo en un contador de rendimiento, puede evitar la búsqueda global de contadores de rendimiento mediante la creación del contador de rendimiento cuando se instala la aplicación y suponiendo que la categoría existe al acceder al contador. No hay ninguna manera de evitar la búsqueda de contadores de rendimiento al leer desde contadores de rendimiento.

Note

Para leer los contadores de rendimiento de una sesión de inicio de sesión no interactiva en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar sus privilegios para acceder a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo Usuarios del Monitor de rendimiento.

En Windows Vista y versiones posteriores, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignan dos tokens de acceso en tiempo de ejecución: un token de acceso de usuario estándar y un token de acceso de administrador. De forma predeterminada, está en el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Puede hacerlo al iniciar una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indicando que desea ejecutar como administrador.

Consulte también

Se aplica a