PerformanceCounter.NextSample Methode

Definitie

Haalt een tellermonster op en retourneert de onbewerkte of niet-berekende waarde ervoor.

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

Retouren

Een CounterSample die de volgende onbewerkte waarde vertegenwoordigt die het systeem voor deze teller verkrijgt.

Uitzonderingen

Het exemplaar is niet correct gekoppeld aan een prestatiemeteritem.

– of –

De InstanceLifetime eigenschap is ingesteld op Process wanneer u globaal gedeeld geheugen gebruikt.

Er is een fout opgetreden bij het openen van een systeem-API.

Code die wordt uitgevoerd zonder beheerdersbevoegdheden heeft geprobeerd een prestatiemeteritem te lezen.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de NextSample methode gebruikt om de volgende niet-berekende waarde van een teller te verkrijgen. Dit codevoorbeeld maakt deel uit van een groter voorbeeld voor de PerformanceCounter klasse.

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

Opmerkingen

Deze methode wordt over het algemeen gebruikt voor tellers die niet-berekende waarden bevatten.

Note

Als de waarde voor de eigenschap InstanceLifetimeProcess is en de prestatiemeteritemcategorie is gemaakt met .NET Framework versie 1.0 of 1.1, wordt er een InvalidOperationException gegenereerd. Prestatiemeteritemscategorieën die zijn gemaakt met eerdere versies, maken gebruik van globaal gedeeld geheugen en de waarde hiervoor InstanceLifetime moet zijn Global. Als de categorie niet wordt gebruikt door toepassingen die worden uitgevoerd op versie 1.0 of 1.1 van het .NET Framework, verwijdert en maakt u de categorie opnieuw.

Note

Als u prestatiemeteritems wilt lezen in Windows Vista, Windows XP Professional x64 Edition of Windows Server 2003, moet u lid zijn van de groep Performance Monitor Gebruikers of beheerdersbevoegdheden hebben.

Als u wilt voorkomen dat u uw bevoegdheden voor toegang tot prestatiemeteritems in Windows Vista moet verhogen, voegt u uzelf toe aan de groep Performance Monitor Gebruikers.

In Windows Vista bepaalt UAC (User Account Control) de bevoegdheden van een gebruiker. Als u lid bent van de groep Ingebouwde beheerders, hebt u twee runtime-toegangstokens toegewezen: een standaard toegangstoken voor gebruikers en een beheerderstoegangstoken. Standaard hebt u de standaardgebruikersrol. Als u de code wilt uitvoeren die toegang heeft tot prestatiemeteritems, moet u eerst uw bevoegdheden verhogen van de standaardgebruiker naar de beheerder. U kunt dit doen wanneer u een toepassing start door met de rechtermuisknop op het toepassingspictogram te klikken en aan te geven dat u wilt uitvoeren als beheerder.

Van toepassing op