Exportar (0) Imprimir
Expandir todo

PerformanceCounterCategory.GetCounters (Método) ()

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[]
No aplicable.

Valor devuelto

Matriz de objetos PerformanceCounter que indica los contadores que están asociados a esta categoría de contador de rendimiento de una sola instancia.

Tipo de 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.

NotaNota:

Para leer contadores de rendimiento, debe tener privilegios administrativos. 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 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0, 1.1, 1.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft