Esta documentación está archivada y no tiene mantenimiento.

PerformanceCounterCategory.CounterExists (Método) (String)

Actualización: noviembre 2007

Determina si el contador especificado está registrado en esta categoría; esta información se indica mediante las propiedades CategoryName y MachineName.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public bool CounterExists(
	string counterName
)
public boolean CounterExists(
	String counterName
)
public function CounterExists(
	counterName : String
) : boolean

Parámetros

counterName
Tipo: System.String
Nombre del contador de rendimiento que se va a buscar.

Valor devuelto

Tipo: System.Boolean
Es true si el contador está registrado en la categoría especificada por las propiedades CategoryName y MachineName; de lo contrario, es false.

ExcepciónCondición
ArgumentNullException

El valor de counterName es null.

InvalidOperationException

No se ha establecido el valor de la propiedad CategoryName.

Win32Exception

Se ha producido un error en la llamada a una API del sistema subyacente.

UnauthorizedAccessException

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

Debe establecer la propiedad CategoryName antes de llamar a este método. De lo contrario, se producirá una excepción.

Si no se ha establecido la propiedad MachineName, este método utiliza el equipo local (".").

e6esf2hx.alert_note(es-es,VS.90).gifNota:

Para leer los contadores de rendimiento de Windows Vista, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo Usuarios del monitor de sistema o tener privilegios administrativos.

Para evitar la elevación de los privilegios de acceso a los contadores de rendimiento en Windows Vista, agregue su propio usuario al grupo Usuarios del monitor de sistema.

En Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará la función de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar el nivel de sus privilegios de usuario estándar a administrador. Esto se puede hacer cuando se inicia una aplicación haciendo clic con el botón secundario del mouse en el icono de la aplicación e indicando que se desea ejecutar como administrador.

En el ejemplo de código siguiente se determina si existe un PerformanceCounter. Se obtiene un nombre de categoría, un nombre de contador y un nombre de equipo de la línea de comandos, si se han proporcionado. Se crea un objeto PerformanceCounterCategory mediante la sobrecarga PerformanceCounterCategoryadecuada. A continuación, se utiliza el método CounterExists(String) para determinar si existe el PerformanceCounter especificado y se informa al usuario.

public static void Main(string[] args)
{
    string categoryName = "";
    string counterName = "";
    string machineName = "";
    bool objectExists = false;
    PerformanceCounterCategory pcc;

    // Copy the supplied arguments into the local variables.
    try
    {
        categoryName = args[0];
        counterName = args[1];
        machineName = (args[2]=="."? "": args[2]);
    }
    catch(Exception ex)
    {
        // Ignore the exception from non-supplied arguments.
    }

    try
    {
        if (machineName.Length==0)
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }

        // Check whether the specified counter exists.
        // Use the per-instance overload of CounterExists.
        objectExists = pcc.CounterExists(counterName);

    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to check for the existence of " +
            "counter \"{0}\" in category \"{1}\" on "+
            (machineName.Length>0? "computer \"{2}\".": "this computer.")+ "\n" + 
            ex.Message, counterName, categoryName, machineName);
        return;
    }

    // Tell the user whether the counter exists.
    Console.WriteLine("Counter \"{0}\" " + (objectExists? "exists": "does not exist") + 
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), 
        counterName, pcc.CategoryName, pcc.MachineName);
}


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0
Mostrar: