Exportar (0) Imprimir
Expandir todo

PerformanceCounterCategory.Exists (Método) (String)

Actualización: noviembre 2007

Determina si la categoría está registrada en el equipo local.

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

public static bool Exists(
	string categoryName
)
public static boolean Exists(
	String categoryName
)
public static function Exists(
	categoryName : String
) : boolean

Parámetros

categoryName
Tipo: System.String
Nombre de la categoría de contador de rendimiento que se va a buscar.

Valor devuelto

Tipo: System.Boolean
Es true si la categoría está registrada; de lo contrario, es false.

ExcepciónCondición
ArgumentNullException

El valor del parámetro categoryName es null.

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.

El uso del método Exists puede producir una reducción del rendimiento notable mientras se comprueba la disponibilidad de todos los contadores de rendimiento. Sí sólo está escribiendo a un contador de rendimiento, puede evitar la búsqueda global de contadores de rendimiento creando el contador de rendimiento cuando se instala la aplicación y considerando que la categoría existe cuando se obtiene acceso al contador. No hay ninguna manera de evitar la búsqueda del contador de rendimiento cuando se leen los contadores de rendimiento.

tzz6bdx9.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 objeto PerformanceCounterCategory denominado "pedidos". Si no, crea el objeto PerformanceCounterCategory utilizando un objeto CounterCreationDataCollection que contiene dos contadores de rendimiento.

if (!PerformanceCounterCategory.Exists("Orders"))
{
    CounterCreationData milk = new CounterCreationData();
    milk.CounterName = "milk";
    milk.CounterType = PerformanceCounterType.NumberOfItems32;

    CounterCreationData milkPerSecond = new CounterCreationData();
    milkPerSecond.CounterName = "milk orders/second";
    milkPerSecond.CounterType = PerformanceCounterType.RateOfCountsPerSecond32;

    CounterCreationDataCollection ccds = new CounterCreationDataCollection();
    ccds.Add(milkPerSecond);
    ccds.Add(milk);

    PerformanceCounterCategory.Create("Orders", "Number of processed orders",
        PerformanceCounterCategoryType.SingleInstance, ccds);

}


if (!PerformanceCounterCategory.Exists("Orders")) {
    CounterCreationData milk = new CounterCreationData();
    milk.set_CounterName("milk");
    milk.set_CounterType(PerformanceCounterType.NumberOfItems32);

    CounterCreationData milkPerSecond = new CounterCreationData();
    milkPerSecond.set_CounterName("milk orders/second");
    milkPerSecond.set_CounterType(PerformanceCounterType.
        RateOfCountsPerSecond32);
    CounterCreationDataCollection ccds = 
        new CounterCreationDataCollection();
    ccds.Add(milkPerSecond);
    ccds.Add(milk);

    PerformanceCounterCategory.Create("Orders",
        "Number of processed orders", ccds);
}


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