Esta documentación está archivada y no tiene mantenimiento.

PerformanceCounterCategory.Create (Método) (String, String, PerformanceCounterCategoryType, CounterCreationDataCollection)

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
)
public static PerformanceCounterCategory Create (
	String categoryName, 
	String categoryHelp, 
	PerformanceCounterCategoryType categoryType, 
	CounterCreationDataCollection counterData
)
public static function Create (
	categoryName : String, 
	categoryHelp : String, 
	categoryType : PerformanceCounterCategoryType, 
	counterData : CounterCreationDataCollection
) : PerformanceCounterCategory
No aplicable.

Parámetros

categoryName

Nombre de la categoría de contador de rendimiento personalizada que se va a crear y registrar en el sistema.

categoryHelp

Descripción de la categoría personalizada.

categoryType

Uno de los valores de PerformanceCounterCategoryType.

counterData

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

Valor devuelto

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

Tipo de excepciónCondición

ArgumentException

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

O bien,

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

O bien,

counterName tiene una sintaxis no válida. Puede que contenga caracteres de barra invertida ("\") o su longitud supere los 80 caracteres.

ArgumentNullException

El valor de categoryName es referencia null (Nothing en Visual Basic).

O bien

El valor de counterData es referencia null (Nothing en Visual Basic).

ArgumentOutOfRangeException

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

InvalidOperationException

Ya existe la categoría en el equipo local.

O bien,

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

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 parámetro categoryType especifica si la categoría de contador de rendimiento es de una sola instancia o de varias instancias. De manera predeterminada, una categoría es de una sola instancia cuando se crea y se convierte en categoría de varias instancias al agregar otra instancia. Las categorías se crean cuando se configura una aplicación, y las instancias se agregan en tiempo de ejecución. En las versiones 1.0 y 1.1 de .NET Framework, no es preciso saber si la categoría de un contador de rendimiento es de una sola instancia o de varias. En Microsoft .NET Framework versión 2.0, se utiliza la enumeración PerformanceCounterCategoryType para indicar si un contador de rendimiento puede tener varias instancias.

Las categorías de contador de rendimiento instaladas con .NET Framework 2.0 utilizan memoria compartida independiente, y cada categoría de contador de rendimiento tiene su propia memoria. Se puede especificar el tamaño de la memoria compartida independiente creando un DWORD denominado FileMappingSize en la clave del Registro HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<nombre de 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, se utiliza el valor del atributo fileMappingSize para el elemento performanceCounters especificado en el archivo Machine.config, lo que provoca una sobrecarga adicional en el procesamiento del archivo de configuración. Puede apreciar una mejora del rendimiento en el inicio de la aplicación estableciendo el tamaño de asignación de archivos en el Registro.

NotaNota:

Se recomienda crear nuevas categorías de contador de rendimiento durante la instalación de la aplicación y no durante la ejecución de la misma. De este modo, el sistema operativo dispondrá de tiempo para actualizar la lista de categorías registradas de contador de rendimiento. Si la lista no se ha actualizado, se producirá un error al intentar utilizar la categoría.

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 siguiente ejemplo de código se muestra el uso del método Create. Se muestra cómo crear una categoría personalizada 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);

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
Mostrar: