Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método PerformanceCounterCategory::Exists (String^, String^)

 

Publicado: noviembre de 2016

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

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

public:
static bool Exists(
	String^ categoryName,
	String^ machineName
)

Parámetros

categoryName
Type: System::String^

El nombre de la categoría de contador de rendimiento para buscar.

machineName
Type: System::String^

El nombre del equipo para buscar la categoría.

Valor devuelto

Type: System::Boolean

true Si la categoría está registrada; de lo contrario, false.

Exception Condition
ArgumentNullException

El parámetro categoryName es null.

ArgumentException

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

O bien

El machineName parámetro no es válido.

Win32Exception

Error en una llamada a una API del sistema subyacente.

IOException

No se encuentra la ruta de acceso de red.

UnauthorizedAccessException

El llamador no dispone del permiso requerido.

-o-

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

El uso de la Exists método puede producir una reducción del rendimiento notable mientras se comprueban la disponibilidad de todos los contadores de rendimiento en el equipo. Si sólo se escriben en 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 suponiendo que la categoría existe cuando se obtiene acceso al contador. No hay ninguna manera de evitar la búsqueda del contador de rendimiento al leer los contadores de rendimiento.

System_CAPS_noteNota

Para leer los contadores de rendimiento en Windows Vista y versiones posteriores, Windows XP Professional x64 Edition o Windows Server 2003, debe ser miembro del grupo usuarios del Monitor de rendimiento o tener privilegios administrativos.

Para evitar tener que elevar sus privilegios para tener acceso a los contadores de rendimiento en Windows Vista y versiones posteriores, agréguese al grupo usuarios del Monitor de rendimiento.

En Windows Vista y versiones posteriores, 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á el rol de usuario estándar. Para ejecutar el código que tiene acceso a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Para ello, inicie una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indique que desea ejecutarla como administrador.

En el ejemplo siguiente se determina si un PerformanceCounterCategory objeto denominado Orders existe. Si no existe, el ejemplo crea el PerformanceCounterCategory objeto usando un CounterCreationDataCollection objeto que contiene dos contadores de rendimiento.

if (  !PerformanceCounterCategory::Exists( "Orders" ) )
{
   CounterCreationData^ milk = gcnew CounterCreationData;
   milk->CounterName = "milk";
   milk->CounterType = PerformanceCounterType::NumberOfItems32;

   CounterCreationData^ milkPerSecond = gcnew CounterCreationData;
   milkPerSecond->CounterName = "milk orders/second";
   milkPerSecond->CounterType = PerformanceCounterType::RateOfCountsPerSecond32;

   CounterCreationDataCollection^ ccds = gcnew CounterCreationDataCollection;
   ccds->Add( milkPerSecond );
   ccds->Add( milk );
   PerformanceCounterCategory::Create( "Orders", "Number of processed orders", ccds );
}

PerformanceCounterPermission

for reading performance counter categories. Associated enumeration: F:System.Diagnostics.PerformanceCounterPermissionAccess.Read.

.NET Framework
Disponible desde 1.1
Volver al principio
Mostrar: