Exportar (0) Imprimir
Expandir todo

PerformanceCounterCategory.GetCounters (Método)

Actualización: noviembre 2007

Recupera una lista de los contadores de una categoría de contador de rendimiento que contiene exactamente una instancia.

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

public PerformanceCounter[] GetCounters()
public PerformanceCounter[] GetCounters()
public function GetCounters() : PerformanceCounter[]

Valor devuelto

Tipo: System.Diagnostics.PerformanceCounter[]
Matriz de objetos PerformanceCounter que indica los contadores que están asociados a esta categoría de contador de rendimiento de una sola instancia.

ExcepciónCondición
ArgumentException

La categoría no es una instancia única.

Win32Exception

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

InvalidOperationException

La categoría no tiene una instancia asociada.

UnauthorizedAccessException

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

Para obtener más información sobre las instancias de objetos de rendimiento, vea la información general de la clase PerformanceCounter.

ew6c05xw.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 obtiene una lista de los objetos PerformanceCounter de una PerformanceCounterCategory. Primero, se crea una PerformanceCounterCategory con el constructor adecuado, basándose en si se ha especificado un nombre de equipo. A continuación, se utiliza el método GetCounters para devolver una matriz de objetos PerformanceCounter, seleccionando la sobrecarga GetCounters según se haya especificado un nombre de instancia.

Esta sobrecarga GetCounters() genera un error, a menos que se utilice con una categoría de una sola instancia.

public static void Main(string[] args)
{
    string categoryName = "";
    string machineName = "";
    string instanceName = "";
    PerformanceCounterCategory pcc;
    PerformanceCounter[] counters;

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

    try
    {
        // Create the appropriate PerformanceCounterCategory object.
        if (machineName.Length>0)
        {
            pcc = new PerformanceCounterCategory(categoryName, machineName);
        }
        else
        {
            pcc = new PerformanceCounterCategory(categoryName);
        }

        // Get the counters for this instance or a single instance 
        // of the selected category.
        if (instanceName.Length>0)
        {
            counters = pcc.GetCounters(instanceName);
        }
        else
        {
            counters = pcc.GetCounters();
        }

    }
    catch(Exception ex)
    {
        Console.WriteLine("Unable to get counter information for " + 
            (instanceName.Length>0? "instance \"{2}\" in ": "single-instance ") + 
            "category \"{0}\" on " + (machineName.Length>0? "computer \"{1}\":": "this computer:"), 
            categoryName, machineName, instanceName);
        Console.WriteLine(ex.Message);
        return;
    }

    // Display the counter names if GetCounters was successful.
    if (counters!=null)
    {
        Console.WriteLine("These counters exist in " + 
            (instanceName.Length>0? "instance \"{1}\" of": "single instance") + 
            " category {0} on " + (machineName.Length>0? "computer \"{2}\":": "this computer:"), 
            categoryName, instanceName, machineName);

        // Display a numbered list of the counter names.
        int objX;
        for(objX=0; objX<counters.Length; objX++)
        {
            Console.WriteLine("{0,4} - {1}", objX+1, counters[objX].CounterName);
        }
    }
}


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

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft