PerformanceCounter.NextSample Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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 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.