Exportar (0) Imprimir
Expandir todo

PerformanceCounterCategory.InstanceExists (Método) (String, String)

Determina si una categoría especificada en el equipo local contiene la instancia de objeto de rendimiento especificada.

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

public static bool InstanceExists (
	string instanceName,
	string categoryName
)
public static boolean InstanceExists (
	String instanceName, 
	String categoryName
)
public static function InstanceExists (
	instanceName : String, 
	categoryName : String
) : boolean
No aplicable.

Parámetros

instanceName

Instancia de objeto de rendimiento que se va a buscar.

categoryName

Categoría de contador de rendimiento en la que se va a buscar.

Valor devuelto

Es true si la categoría contiene la instancia de objeto de rendimiento especificada; de lo contrario, es false.

Tipo de excepciónCondición

ArgumentNullException

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

O bien

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

ArgumentException

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

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.

No es posible determinar si una instancia de objeto de rendimiento reside en un equipo sin especificar la categoría específica en la que se debe buscar.

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 utilizan las sobrecargas estáticas de InstanceExists para determinar si existe la instancia de PerformanceCounter especificada en la PerformanceCounterCategory. La sobrecarga se selecciona basándose en si se ha especificado un nombre de equipo. Si no hay ningún nombre de instancia especificado, se utiliza en el ejemplo el nombre predeterminado de la instancia única.

public static void Main(string[] args)
{
    string categoryName = "";
    string instanceName = "";
    string machineName = "";
    bool objectExists = false;
    const string SINGLE_INSTANCE_NAME = "systemdiagnosticsperfcounterlibsingleinstance";

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

    // Use the given instance name or use the default single-instance name.
    if (instanceName.Length==0)
    {
        instanceName = SINGLE_INSTANCE_NAME;
    }

    try
    {
        // Check whether the specified instance exists.
        // Use the static forms of the InstanceExists method.
        if (machineName.Length==0)
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName);
        }
        else
        {
            objectExists = PerformanceCounterCategory.InstanceExists(instanceName, categoryName, machineName);
        }

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

    // Tell the user whether the instance exists.
    Console.WriteLine("Instance \"{0}\" " + (objectExists? "exists": "does not exist") + 
        " in category \"{1}\" on " + (machineName.Length>0? "computer \"{2}\".": "this computer."), 
        instanceName, categoryName, machineName);
}

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