PerformanceCounter.NextSample Metoda

Definicja

Uzyskuje przykład licznika i zwraca nieprzetworzoną lub nieobliczoną wartość.Obtains a counter sample, and returns the raw, or uncalculated, value for it.

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

Zwraca

CounterSample

CounterSampleReprezentuje następną wartość pierwotną, którą system uzyskuje dla tego licznika.A CounterSample that represents the next raw value that the system obtains for this counter.

Wyjątki

Wystąpienie nie jest poprawnie skojarzone z licznikiem wydajności.The instance is not correctly associated with a performance counter.

-lub--or- InstanceLifetimeWłaściwość jest ustawiona na, Process gdy używana jest globalna pamięć współdzielona.The InstanceLifetime property is set to Process when using global shared memory.

Wystąpił błąd podczas uzyskiwania dostępu do interfejsu API systemu.An error occurred when accessing a system API.

Kod wykonywany bez uprawnień administracyjnych próbował odczytać licznik wydajności.Code that is executing without administrative privileges attempted to read a performance counter.

Przykłady

Poniższy przykład kodu demonstruje sposób użycia NextSample metody w celu uzyskania następnej nieobliczonej wartości licznika.The following code example demonstrates how to use the NextSample method to obtain the next uncalculated value of a counter. Ten przykład kodu jest częścią większego przykładu dla PerformanceCounter klasy.This code example is part of a larger example for the PerformanceCounter class.

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, które zawierają wartości nieobliczone.This method is generally used for counters that contain uncalculated values.

Uwaga

Jeśli wartość InstanceLifetime właściwości jest Process i została utworzona kategoria licznika wydajności z .NET Framework wersja 1,0 lub 1,1, InvalidOperationException zostanie zgłoszony.If the value for the InstanceLifetime property is Process and the performance counter category was created with .NET Framework version 1.0 or 1.1, an InvalidOperationException is thrown. Kategorie licznika wydajności utworzone przy użyciu wcześniejszych wersji używają globalnej pamięci współdzielonej, a wartość parametru InstanceLifetime musi być równa Global .Performance counter categories created with earlier versions use global shared memory, and the value for InstanceLifetime must be Global. Jeśli kategoria nie jest używana przez aplikacje działające w wersji 1,0 lub 1,1 .NET Framework, Usuń i Utwórz ponownie kategorię.If the category is not used by applications running on versions 1.0 or 1.1 of the .NET Framework, delete and recreate the category.

Uwaga

Aby odczytać liczniki wydajności w systemie Windows Vista, Windows XP Professional x64 Edition lub Windows Server 2003, trzeba być członkiem grupy Użytkownicy monitora wydajności lub mieć uprawnienia administracyjne.To read performance counters in Windows Vista, Windows XP Professional x64 Edition, or Windows Server 2003, you must either be a member of the Performance Monitor Users group or have administrative privileges.

Aby uniknąć konieczności podniesienia uprawnień dostępu do liczników wydajności w systemie Windows Vista, należy dodać siebie do grupy Użytkownicy monitora wydajności.To avoid having to elevate your privileges to access performance counters in Windows Vista, add yourself to the Performance Monitor Users group.

W systemie Windows Vista Kontrola konta użytkownika (UAC) określa uprawnienia użytkownika.In Windows Vista, User Account Control (UAC) determines the privileges of a user. 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.If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. Domyślnie jesteś w roli użytkownika standardowego.By default, you are in the standard user role. Aby wykonać kod, który uzyskuje dostęp do liczników wydajności, należy najpierw podnieść poziom uprawnień użytkownika standardowego do administratora.To execute the code that accesses performance counters, you must first elevate your privileges from standard user to administrator. Można to zrobić podczas uruchamiania aplikacji przez kliknięcie prawym przyciskiem myszy ikony aplikacji i wskazanie, że chcesz uruchomić program jako administrator.You can do this when you start an application by right-clicking the application icon and indicating that you want to run as an administrator.

Dotyczy