Exportar (0) Imprimir
Expandir todo

PerformanceCounterCategory.GetCounters (Método) (String)

Recupera una lista de los contadores de una categoría de contador de rendimiento que contiene una o más instancias.

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

public PerformanceCounter[] GetCounters (
	string instanceName
)
public PerformanceCounter[] GetCounters (
	String instanceName
)
public function GetCounters (
	instanceName : String
) : PerformanceCounter[]
No aplicable.

Parámetros

instanceName

Instancia de objeto de rendimiento para la que se va a recuperar una lista de contadores asociados.

Valor devuelto

Matriz de objetos PerformanceCounter que indica los contadores asociados a la instancia de objeto especificada de esta categoría de contador de rendimiento.

Tipo de excepciónCondición

ArgumentNullException

El valor del parámetro instanceName es referencia null (Nothing en Visual Basic).

InvalidOperationException

No se ha establecido la propiedad CategoryName para esta instancia de PerformanceCounterCategory.

O bien

La categoría no contiene la instancia especificada en el parámetro instanceName.

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.

Para representar una categoría de una sola instancia, hay que pasar una cadena vacía ("") como valor del parámetro instanceName.

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(String) genera un error, a menos que se utilice con una categoría que contiene varias instancias.

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:
© 2014 Microsoft