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.Create (String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

 

Publicado: octubre de 2016

Registra la categoría de contador de rendimiento personalizada que contiene los contadores especificados en el equipo local.

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

public static PerformanceCounterCategory Create(
	string categoryName,
	string categoryHelp,
	PerformanceCounterCategoryType categoryType,
	CounterCreationDataCollection counterData
)

Parámetros

categoryName
Type: System.String

El nombre de la categoría de contador de rendimiento personalizado para crear y registrar con el sistema.

categoryHelp
Type: System.String

Descripción de la categoría personalizada.

categoryType
Type: System.Diagnostics.PerformanceCounterCategoryType

Uno de los valores de PerformanceCounterCategoryType.

counterData
Type: System.Diagnostics.CounterCreationDataCollection

Un CounterCreationDataCollection que especifica los contadores a crear como parte de la nueva categoría.

Valor devuelto

Type: System.Diagnostics.PerformanceCounterCategory

Un PerformanceCounterCategory que está asociado a la nueva categoría personalizada, u objeto de rendimiento.

Exception Condition
ArgumentException

Un nombre de contador especificado dentro de la counterData colección es null o una cadena vacía ("").

O bien

Un contador especificado dentro de la counterData la colección ya existe.

O bien

counterName tiene una sintaxis no válida. Podría contener caracteres de barra diagonal inversa ("\") o tiene longitud supere los 80 caracteres.

ArgumentNullException

El valor de categoryName es null.

-o-

El valor de counterData es null.

ArgumentOutOfRangeException

categoryType valor está fuera del intervalo de los valores siguientes: MultiInstance, SingleInstance, o Unknown.

InvalidOperationException

La categoría ya existe en el equipo local.

O bien

El diseño de la counterData colección es incorrecto para los contadores bases. Un contador de tipo AverageCount64, AverageTimer32, CounterMultiTimer, CounterMultiTimerInverse, CounterMultiTimer100Ns, CounterMultiTimer100NsInverse, RawFraction, SampleFraction, o SampleCounter debe ir seguido inmediatamente por uno de los tipos de contador base (AverageBase, MultiBase, RawBase, o SampleBase).

Win32Exception

Error en una llamada a una API del sistema subyacente.

UnauthorizedAccessException

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

El categoryType parámetro especifica si la categoría de contador de rendimiento es de instancia única o varias instancias. De forma predeterminada, una categoría es de instancia única cuando se crea y se convierte en varias instancias cuando se agrega otra instancia. Categorías se crean cuando se configura una aplicación, y se agregan instancias en tiempo de ejecución. En las versiones 1.0 y 1.1 de .NET Framework, no es necesario saber si una categoría de contador de rendimiento es de varias instancias o de instancia única. En el .NET Framework&2;.0, el PerformanceCounterCategoryType enumeración se utiliza para indicar si un contador de rendimiento puede tener varias instancias.

Categorías de contador de rendimiento instaladas con el .NET Framework 2.0 usar memoria compartida independiente, y cada categoría de contador de rendimiento tiene su propia memoria. Puede especificar el tamaño de memoria compartida independiente creando un DWORD denominado FileMappingSize en la clave del registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\< nombre de la categoría >\Performance. El valor de FileMappingSize se establece en el tamaño de memoria compartida de la categoría. El tamaño predeterminado es el valor decimal 131072. Si el valor de FileMappingSize no está presente, el fileMappingSize valor del atributo para el performanceCounters se utiliza el elemento especificado en el archivo Machine.config, provocando una sobrecarga adicional para el procesamiento del archivo de configuración. Puede conseguir una mejora del rendimiento de inicio de la aplicación estableciendo el tamaño de asignación del archivo en el registro.

System_CAPS_noteNota

Se recomienda encarecidamente que se crean nuevas categorías de contador de rendimiento durante la instalación de la aplicación, no durante la ejecución de la aplicación. Esto da tiempo para el sistema operativo actualizar su lista de categorías de contador de rendimiento registrados. Si no se ha actualizado la lista, se producirá un error al intentar utilizar la categoría.

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 de código siguiente se muestra el uso de la Create (método). En el ejemplo se muestra cómo crear una personalizada, la categoría de contador de rendimiento de varias instancias para el número de pedidos por segundo.

CounterCreationData data1 = new CounterCreationData("Trucks",
    "Number of orders", PerformanceCounterType.NumberOfItems32);
CounterCreationData data2 = new CounterCreationData("Rate of sales",
    "Orders/second", PerformanceCounterType.RateOfCountsPerSecond32);
CounterCreationDataCollection ccds = new CounterCreationDataCollection();
ccds.Add(data1);
ccds.Add(data2);
Console.WriteLine("Creating Orders custom counter.");
if (!PerformanceCounterCategory.Exists("Orders"))
    PerformanceCounterCategory.Create("Orders",
        "Processed orders",
        PerformanceCounterCategoryType.MultiInstance,
        ccds);

PerformanceCounterPermission

for performing administrative tasks on performance counter categories. Associated enumeration: F:System.Diagnostics.PerformanceCounterPermissionAccess.Administer.

.NET Framework
Disponible desde 2.0
Volver al principio
Mostrar: