PerformanceCounter.NextSample Methode

Definition

Ruft eine Zählermessung ab und gibt dafür den unformatierten bzw. nicht berechneten Wert zurück.

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

Gibt zurück

CounterSample

Ein CounterSample, das den nächsten Rohwert darstellt, den das System für diesen Zähler abruft.

Ausnahmen

Die Instanz ist keinem Leistungsindikator ordnungsgemäß zugeordnet.

- oder - Die InstanceLifetime-Eigenschaft wird auf Process festgelegt, wenn der globale gemeinsam genutzte Speicherbereich verwendet wird.

Beim Zugreifen auf eine System-API ist ein Fehler aufgetreten.

Ohne Administratorrechte ausgeführter Code hat versucht, einen Leistungsindikator zu lesen.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie die Methode zum Abrufen des nächsten nicht berechneten Werts eines Zählers verwendet NextSample wird. Dieses Codebeispiel ist Teil eines größeren Beispiels für die PerformanceCounter Klasse.

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

Hinweise

Diese Methode wird in der Regel für Zähler verwendet, die nicht berechnete Werte enthalten.

Hinweis

Wenn der Wert für die InstanceLifetime Eigenschaft und Process die Leistungsindikatorenkategorie mit .NET Framework Version 1.0 oder 1.1 erstellt wurde, wird eine InvalidOperationException ausgelöst. Leistungsindikatorenkategorien, die mit früheren Versionen erstellt wurden, verwenden global freigegebenen Arbeitsspeicher, und der Wert für InstanceLifetime muss Globalsein. Wenn die Kategorie nicht von Anwendungen verwendet wird, die auf Versionen 1.0 oder 1.1 des .NET Framework ausgeführt werden, löschen und neu erstellen Sie die Kategorie.

Hinweis

Um Leistungsindikatoren in Windows Vista, Windows XP Professional x64 Edition oder Windows Server 2003 zu lesen, müssen Sie entweder Mitglied der Leistungsmonitor Benutzergruppe sein oder über administrative Berechtigungen verfügen.

Um zu vermeiden, dass Sie Ihre Berechtigungen erhöhen müssen, um auf Leistungsindikatoren in Windows Vista zuzugreifen, fügen Sie sich der Gruppe Leistungsmonitor Benutzer hinzu.

Unter Windows Vista werden die Berechtigungen eines Benutzers über die Benutzerkontensteuerung (User Account Control, UAC) bestimmt. Als Mitglied der integrierten Administratorgruppe sind Ihnen zwei Zugriffstoken für die Laufzeit zugewiesen: ein Standardbenutzertoken und ein Administratorzugriffstoken. Standardmäßig verwenden Sie die Standardbenutzerrolle. Um den Code auszuführen, der auf Leistungsindikatoren zugreift, müssen Sie zuerst Ihre Berechtigungen von Standardbenutzer zu Administrator erhöhen. Dazu starten Sie eine Anwendung, indem Sie mit der rechten Maustaste auf das Anwendungssymbol klicken und angeben, dass Sie die Anwendung als Administrator ausführen möchten.

Gilt für