Para ver el artículo en inglés, active la casilla Inglés. También puede ver el texto en inglés en una ventana emergente si pasa el puntero del mouse por el texto.
Traducción
Inglés
Esta documentación está archivada y no tiene mantenimiento.

CounterCreationData (Clase)

Define el tipo de contador, el nombre y la cadena de Ayuda de un contador personalizado.

System.Object
  System.Diagnostics.CounterCreationData

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

'Declaración
<SerializableAttribute> _
<TypeConverterAttribute("System.Diagnostics.Design.CounterCreationDataConverter, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")> _
Public Class CounterCreationData

El tipo CounterCreationData expone los siguientes miembros.

  NombreDescripción
Método públicoCounterCreationDataInicializa una nueva instancia de la clase CounterCreationData para un contador de tipo NumberOfItems32, con las cadenas de nombre y de Ayuda vacías.
Método públicoCounterCreationData(String, String, PerformanceCounterType)Inicializa una nueva instancia de la clase CounterCreationData para un contador del tipo especificado, utilizando las cadenas de nombre de contador y de Ayuda especificadas.
Arriba

  NombreDescripción
Propiedad públicaCounterHelpObtiene o establece la descripción del contador personalizado.
Propiedad públicaCounterNameObtiene o establece el nombre del contador personalizado.
Propiedad públicaCounterTypeObtiene o establece el tipo de contador de rendimiento del contador personalizado.
Arriba

  NombreDescripción
Método públicoEquals(Object)Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegidoFinalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Se hereda de Object).
Método públicoGetHashCodeActúa como función hash para un tipo concreto. (Se hereda de Object).
Método públicoGetType Obtiene el Type de la instancia actual. (Se hereda de Object).
Método protegidoMemberwiseClone Crea una copia superficial del Object actual. (Se hereda de Object).
Método públicoToString Devuelve una cadena que representa al objeto actual. (Se hereda de Object).
Arriba

En el ejemplo de código siguiente se muestra cómo utilizar la clase CounterCreationData para definir contadores personalizados. En este ejemplo se crean contadores que muestran cuántos elementos se procesan en una operación. El ejemplo inicializa los contadores, recopila información acerca de ellos y, a continuación, calcula y muestra los resultados en la consola.


Imports System
Imports System.Collections
Imports System.Collections.Specialized
Imports System.Diagnostics

 _

Public Class App

   Private Shared PC As PerformanceCounter
   Private Shared BPC As PerformanceCounter


   Public Shared Sub Main()

      Dim samplesList As New ArrayList()
        'If the category does not exist, create the category and exit.
        'Performance counters should not be created and immediately used.
        'There is a latency time to enable the counters, they should be created
        'prior to executing the application that uses the counters.
        'Execute this sample a second time to use the counters.
        If Not (SetupCategory()) Then
            CreateCounters()
            CollectSamples(samplesList)
            CalculateResults(samplesList)
        End If

   End Sub 'Main



   Private Shared Function SetupCategory() As Boolean
      If Not PerformanceCounterCategory.Exists("AverageCounter64SampleCategory") Then

         Dim CCDC As New CounterCreationDataCollection()

         ' Add the counter.
         Dim averageCount64 As New CounterCreationData()
         averageCount64.CounterType = PerformanceCounterType.AverageCount64
         averageCount64.CounterName = "AverageCounter64Sample"
         CCDC.Add(averageCount64)

         ' Add the base counter.
         Dim averageCount64Base As New CounterCreationData()
         averageCount64Base.CounterType = PerformanceCounterType.AverageBase
         averageCount64Base.CounterName = "AverageCounter64SampleBase"
         CCDC.Add(averageCount64Base)

         ' Create the category.
            PerformanceCounterCategory.Create("AverageCounter64SampleCategory", _
               "Demonstrates usage of the AverageCounter64 performance counter type.", _
                      PerformanceCounterCategoryType.SingleInstance, CCDC)


         Return True
      Else
         Console.WriteLine("Category exists - AverageCounter64SampleCategory")
         Return False
      End If
   End Function 'SetupCategory


   Private Shared Sub CreateCounters()
      ' Create the counters.

      PC = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64Sample", False)

      BPC = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64SampleBase", False)


      PC.RawValue = 0
      BPC.RawValue = 0
   End Sub 'CreateCounters

   Private Shared Sub CollectSamples(samplesList As ArrayList)

      Dim r As New Random(DateTime.Now.Millisecond)

      ' Loop for the samples.
      Dim j As Integer
      For j = 0 To 99

         Dim value As Integer = r.Next(1, 10)
            Console.Write(j.ToString() + " = " + value.ToString())

         PC.IncrementBy(value)

         BPC.Increment()

         If j Mod 10 = 9 Then
            OutputSample(PC.NextSample())
            samplesList.Add(PC.NextSample())
         Else
            Console.WriteLine()
         End If 
         System.Threading.Thread.Sleep(50)
      Next j
   End Sub 'CollectSamples

   Private Shared Sub CalculateResults(samplesList As ArrayList)
      Dim i As Integer
      For i = 0 To (samplesList.Count - 1) - 1
         ' Output the sample.
         OutputSample(CType(samplesList(i), CounterSample))
         OutputSample(CType(samplesList((i + 1)), CounterSample))

         ' Use .NET to calculate the counter value.
            Console.WriteLine(".NET computed counter value = " + CounterSampleCalculator.ComputeCounterValue(CType(samplesList(i), CounterSample), CType(samplesList((i + 1)), CounterSample)).ToString())

         ' Calculate the counter value manually.
            Console.WriteLine("My computed counter value = " + MyComputeCounterValue(CType(samplesList(i), CounterSample), CType(samplesList((i + 1)), CounterSample)).ToString())
      Next i
   End Sub 'CalculateResults




   '++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
   '	Description - This counter type shows how many items are processed, on average,
   '		during an operation. Counters of this type display a ratio of the items 
   '		processed (such as bytes sent) to the number of operations completed. The  
   '		ratio is calculated by comparing the number of items processed during the 
   '		last interval to the number of operations completed during the last interval. 
   ' Generic type - Average
   '  	Formula - (N1 - N0) / (D1 - D0), where the numerator (N) represents the number 
   '		of items processed during the last sample interval and the denominator (D) 
   '		represents the number of operations completed during the last two sample 
   '		intervals. 
   '	Average (Nx - N0) / (Dx - D0)  
   '	Example PhysicalDisk\ Avg. Disk Bytes/Transfer 
   '++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
   Private Shared Function MyComputeCounterValue(s0 As CounterSample, s1 As CounterSample) As [Single]
      Dim numerator As [Single] = CType(s1.RawValue, [Single]) - CType(s0.RawValue, [Single])
      Dim denomenator As [Single] = CType(s1.BaseValue, [Single]) - CType(s0.BaseValue, [Single])
      Dim counterValue As [Single] = numerator / denomenator
      Return counterValue
   End Function 'MyComputeCounterValue


   ' Output information about the counter sample.
   Private Shared Sub OutputSample(s As CounterSample)
      Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "+++++++++++")
      Console.WriteLine("Sample values - " + ControlChars.Lf + ControlChars.Cr)
        Console.WriteLine(("   BaseValue        = " + s.BaseValue.ToString()))
        Console.WriteLine(("   CounterFrequency = " + s.CounterFrequency.ToString()))
        Console.WriteLine(("   CounterTimeStamp = " + s.CounterTimeStamp.ToString()))
        Console.WriteLine(("   CounterType      = " + s.CounterType.ToString()))
        Console.WriteLine(("   RawValue         = " + s.RawValue.ToString()))
        Console.WriteLine(("   SystemFrequency  = " + s.SystemFrequency.ToString()))
        Console.WriteLine(("   TimeStamp        = " + s.TimeStamp.ToString()))
        Console.WriteLine(("   TimeStamp100nSec = " + s.TimeStamp100nSec.ToString()))
      Console.WriteLine("++++++++++++++++++++++")
   End Sub 'OutputSample
End Class 'App


.NET Framework

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Mostrar: