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

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 Sie die NextSample -Methode verwenden, um den nächsten nicht berechneten Wert eines Zählers abzurufen. 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 im Allgemeinen für Indikatoren verwendet, die nicht berechnete Werte enthalten.

Hinweis

Wenn der Wert für die InstanceLifetime Eigenschaft ist Process und die Leistungsindikatorkategorie mit .NET Framework Version 1.0 oder 1.1 erstellt wurde, wird ein InvalidOperationException ausgelöst. Leistungsindikatorkategorien, die mit früheren Versionen erstellt wurden, verwenden globalen freigegebenen Arbeitsspeicher, und der Wert für muss sein InstanceLifetimeGlobal. Wenn die Kategorie nicht von Anwendungen verwendet wird, die unter Version 1.0 oder 1.1 der .NET Framework ausgeführt werden, löschen Sie die Kategorie, und erstellen Sie sie neu.

Hinweis

Zum Lesen von Leistungsindikatoren in Windows Vista, Windows XP Professional x64 Edition oder Windows Server 2003 müssen Sie entweder Mitglied der Gruppe Leistungsmonitor Benutzer sein oder über Administratorrechte verfügen.

Um zu vermeiden, dass Sie Ihre Berechtigungen für den Zugriff auf Leistungsindikatoren in Windows Vista erhöhen müssen, 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 vom Standardbenutzer auf den 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: