Udostępnij za pośrednictwem


PerformanceCounter.NextSample Metoda

Definicja

Uzyskuje próbkę licznika i zwraca dla niej nieprzetworzone lub nieliczane wartości.

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

Zwraca

Wartość CounterSample reprezentująca następną nieprzetworzona wartość uzyskaną przez system dla tego licznika.

Wyjątki

Wystąpienie nie jest poprawnie skojarzone z licznikiem wydajności.

-lub-

Właściwość InstanceLifetime jest ustawiana na Process wartość w przypadku korzystania z globalnej pamięci udostępnionej.

Wystąpił błąd podczas uzyskiwania dostępu do interfejsu API systemu.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.

Przykłady

W poniższym przykładzie kodu pokazano, jak użyć NextSample metody w celu uzyskania następnej nieliczonej wartości licznika. Ten przykład kodu jest częścią większego przykładu PerformanceCounter dla klasy.

void CollectSamples( ArrayList^ samplesList, PerformanceCounter^ PC, PerformanceCounter^ BPC )
{
   Random^ r = gcnew Random( DateTime::Now.Millisecond );

   // Loop for the samples.
   for ( int j = 0; j < 100; j++ )
   {
      int value = r->Next( 1, 10 );
      Console::Write( "{0} = {1}", j, value );
      PC->IncrementBy( value );
      BPC->Increment();
      if ( (j % 10) == 9 )
      {
         OutputSample( PC->NextSample() );
         samplesList->Add( PC->NextSample() );
      }
      else
            Console::WriteLine();
      System::Threading::Thread::Sleep( 50 );
   }
}
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

Uwagi

Ta metoda jest zwykle używana w przypadku liczników zawierających nieliczane wartości.

Uwaga

Jeśli wartość InstanceLifetime właściwości to Process , a kategoria licznika wydajności została utworzona z .NET Framework w wersji 1.0 lub 1.1, InvalidOperationException zostanie zgłoszony. Kategorie liczników wydajności utworzone we wcześniejszych wersjach używają globalnej pamięci udostępnionej, a wartość parametru InstanceLifetime musi mieć Globalwartość . Jeśli kategoria nie jest używana przez aplikacje działające w wersjach 1.0 lub 1.1 .NET Framework, usuń i utwórz ponownie kategorię.

Uwaga

Aby odczytać liczniki wydajności w systemie Windows Vista, Windows XP Professional x64 Edition lub Windows Server 2003, musisz być członkiem grupy użytkownicy monitor wydajności lub mieć uprawnienia administracyjne.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista, dodaj się do grupy użytkownicy monitor wydajności.

W systemie Windows Vista kontrola konta użytkownika (UAC) określa uprawnienia użytkownika. Jeśli jesteś członkiem wbudowanej grupy Administratorzy, masz przypisane dwa tokeny dostępu w czasie wykonywania: token dostępu użytkownika standardowego i token dostępu administratora. Domyślnie jesteś w roli użytkownika standardowego. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, musisz najpierw podnieść poziom uprawnień od użytkownika standardowego do administratora. Możesz to zrobić po uruchomieniu aplikacji, klikając prawym przyciskiem myszy ikonę aplikacji i wskazując, że chcesz uruchomić jako administrator.

Dotyczy