Compartir por


PerformanceCounter.NextSample Método

Definición

Obtiene un ejemplo de contador y devuelve el valor sin procesar o sin calcular para él.

public:
 System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample

Devoluciones

CounterSample que representa el siguiente valor sin procesar que el sistema obtiene para este contador.

Excepciones

La instancia no está asociada correctamente a un contador de rendimiento.

O bien

La InstanceLifetime propiedad se establece en Process cuando se usa la memoria compartida global.

Error al acceder a una API del sistema.

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

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar el NextSample método para obtener el siguiente valor sin calcular de un contador. Este ejemplo de código forma parte de un ejemplo más grande para la PerformanceCounter clase .

private static void CollectSamples(ArrayList samplesList)
{

    Random r = new Random( DateTime.Now.Millisecond );

    // Loop for the samples.
    for (int j = 0; j < 100; j++)
    {

        int value = r.Next(1, 10);
        Console.Write(j + " = " + value);

        avgCounter64Sample.IncrementBy(value);

        avgCounter64SampleBase.Increment();

        if ((j % 10) == 9)
        {
            OutputSample(avgCounter64Sample.NextSample());
            samplesList.Add( avgCounter64Sample.NextSample() );
        }
        else
        {
            Console.WriteLine();
        }

        System.Threading.Thread.Sleep(50);
    }
}
Private Shared Sub CollectSamples(ByVal 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())

        avgCounter64Sample.IncrementBy(value)

        avgCounter64SampleBase.Increment()

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

Comentarios

Este método se usa generalmente para contadores que contienen valores no calculados.

Nota:

Si el valor de la InstanceLifetime propiedad es Process y la categoría del contador de rendimiento se creó con .NET Framework versión 1.0 o 1.1, se produce una InvalidOperationException excepción . Las categorías de contadores de rendimiento creadas con versiones anteriores usan memoria compartida global y el valor de InstanceLifetime debe ser Global. Si las aplicaciones que se ejecutan en las versiones 1.0 o 1.1 de .NET Framework no usan la categoría, elimine y vuelva a crear la categoría.

Nota:

Para leer contadores de rendimiento en Windows Vista, 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 acceder a los contadores de rendimiento en Windows Vista, agréguese al grupo Usuarios del Monitor de rendimiento.

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 asignan dos tokens de acceso en tiempo de ejecución: un token de acceso de usuario estándar y un token de acceso de administrador. De forma predeterminada, está en el rol de usuario estándar. Para ejecutar el código que accede a los contadores de rendimiento, primero debe elevar sus privilegios de usuario estándar a administrador. Puede hacerlo al iniciar una aplicación haciendo clic con el botón derecho en el icono de la aplicación e indicando que desea ejecutar como administrador.

Se aplica a