PerformanceCounter.NextSample Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá vzorek čítače a vrátí nezpracovanou nebo nepřepočítanou hodnotu.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample ();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
Návraty
A CounterSample , který představuje další nezpracovanou hodnotu, kterou systém získá pro tento čítač.
Výjimky
Instance není správně přidružena k čítači výkonu.
-nebo-
Vlastnost je nastavena InstanceLifetime na Process při použití globální sdílené paměti.
Při přístupu k rozhraní API systému došlo k chybě.
Kód, který se spouští bez oprávnění správce, se pokusil přečíst čítač výkonu.
Příklady
Následující příklad kódu ukazuje, jak pomocí NextSample metody získat další nepřepočítané hodnoty čítače. Tento příklad kódu je součástí většího příkladu PerformanceCounter pro třídu.
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
Poznámky
Tato metoda se obecně používá pro čítače, které obsahují nepřepočítané hodnoty.
Poznámka
Pokud je Process hodnota InstanceLifetime vlastnosti a kategorie čítače výkonu byla vytvořena s rozhraním .NET Framework verze 1.0 nebo 1.1, InvalidOperationException je vyvolán. Kategorie čítačů výkonu vytvořené ve starších verzích používají globální sdílenou paměť a hodnota pro InstanceLifetime musí být Global. Pokud kategorie nepoužívá aplikace spuštěné ve verzi 1.0 nebo 1.1 rozhraní .NET Framework, odstraňte a znovu vytvořte kategorii.
Poznámka
Chcete-li číst čítače výkonu v systému Windows Vista, Windows XP Professional x64 Edition nebo Windows Server 2003, musíte být členem skupiny Sledování výkonu Users nebo mít oprávnění správce.
Abyste nemuseli zvýšit oprávnění pro přístup k čítačům výkonu ve Windows Vista, přidejte sami sebe do skupiny Sledování výkonu Users.
Ve Windows Vista nástroj Řízení uživatelských účtů (UAC) určuje oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazeny dva přístupové tokeny run-time: token přístupu uživatele se standardním oprávněním a token přístupu správce. Ve výchozím nastavení máte roli standardního uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění ze standardního uživatele na správce. Můžete to udělat při spuštění aplikace tak, že kliknete pravým tlačítkem na ikonu aplikace a označíte, že chcete spustit jako správce.