Cómo: Agregar y quitar instancias del contador de rendimiento

Actualización: noviembre 2007

Puede agregar y quitar instancias dinámicamente mientras trabaja con contadores y categorías. Por ejemplo, se puede agregar una instancia para cada uno de los usuarios de una aplicación de comercio basada en una web, para poder controlar la información de sus acciones y, después, eliminar la instancia cuando expira la sesión del usuario.

Para agregar instancias, establezca un valor sin formato para un contador. Si no existe ninguna instancia para ese contador, se crea una al establecer por primera vez la propiedad RawValue y todas las acciones posteriores que se realicen con el valor afectarán a esa instancia, a menos que se especifique lo contrario. Puede crear instancias adicionales especificando un nuevo nombre de instancia y, después, estableciendo un valor tras él.

Nota:

El proceso de establecer el valor de la instancia es el que crea la instancia y no el que especifica un nombre para una nueva instancia.

A diferencia de los contadores, que no se pueden agregar a una categoría existente, salvo como parte de la creación de una categoría, se pueden agregar y quitar instancias de las categorías definidas por el usuario en cualquier momento. Puede utilizar la propiedad InstanceName para cambiar de una instancia a otra.

Puede utilizar el método RemoveInstance para quitar una instancia de un contador de rendimiento personalizado de la memoria. Por ejemplo, supongamos que tenemos una aplicación de comercio minorista basada en Web que utiliza una categoría denominada PedidoEnProgreso, y dentro de ella, disponemos de instancias para el carro de la compra actual de cada usuario. Cuando un usuario agrega por vez primera un elemento a su carro de la compra, la aplicación crea una nueva instancia para ese usuario. Cuando el usuario completa el pedido, nuestra aplicación elimina la instancia. Durante el pedido, se actualiza la instancia con contadores como NumeroDeArticulosDelCarro, HoraDesdeSuCreacion y NumeroDeArticulosAgregadosPorSegundo.

No se pueden quitar instancias de los contadores de rendimiento que sean parte predeterminada de Windows. Si el componente PerformanceCounter no hace referencia a una instancia válida, este método producirá una excepción.

Nota:

La clase PerformanceCounter no es totalmente compatible con Microsoft Windows NT 4.0. Puede leer de los contadores del sistema, pero no puede crear, escribir ni eliminar contadores personalizados.

Para agregar una instancia de contador de rendimiento

  1. Cree las categorías y contadores de la forma habitual. Para obtener más información, vea Cómo: Crear categorías de contadores de rendimiento.

  2. Establezca la propiedad InstanceName en un nombre único para la instancia y, después, establezca la propiedad RawValue de la misma.

    En el fragmento de código siguiente se muestra cómo crear varias instancias de una categoría existente de contadores de rendimiento:

    ' Assumes the category and counter have already been created.
    Dim myCounter As New System.Diagnostics.PerformanceCounter( _
       "cat", "counter", "instance1", False)
    ' Set the raw value to automatically create instance1.
    myCounter.RawValue = 100
    ' State that you will now be working with a different instance.
    myCounter.InstanceName = "instance2"
    ' Setting the value actually creates instance2.
    myCounter.RawValue = 200
    
         // Assumes category and counter have been created.
            System.Diagnostics.PerformanceCounter myCounter =
               new System.Diagnostics.PerformanceCounter(
               "cat", "counter", "instance1", false);
            // Set the raw value to automatically create instance1.
            myCounter.RawValue = 100;
            // State that you will now be working with a different instance.
            myCounter.InstanceName = "instance2";
            // Setting the value actually creates instance2.
            myCounter.RawValue = 200;
    
    

Para quitar una instancia de contador de rendimiento

  1. Cree una instancia del componente PerformanceCounter que esté conectada al contador del cual desea quitar una instancia. Para obtener más información, vea Cómo: Crear instancias de componentes PerformanceCounter.

  2. Establezca la propiedad InstanceName en la instancia que desea eliminar.

  3. Llame al método RemoveInstance en el componente.

    En el ejemplo siguiente se muestra cómo quitar una instancia denominada Reference de un contador:

    ' Assumes that you have configured PerformanceCounter1 to
    ' interact with the appropriate counter.
    PerformanceCounter1.InstanceName = "Reference"
    PerformanceCounter1.RemoveInstance()
    
         // Assumes that you have configured PerformanceCounter1 to
            // interact with the appropriate counter.
            PerformanceCounter1.InstanceName = "Reference";
            PerformanceCounter1.RemoveInstance();
    

Vea también

Tareas

Cómo: Crear instancias de componentes PerformanceCounter

Conceptos

Administración de categorías y contadores