PerformanceCounter.NextSample Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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.