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čítánou 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
Jedná se CounterSample o 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 InstanceLifetimeProcess při použití globální sdílené paměti.
Při přístupu k systémovému rozhraní API 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 použít metodu NextSample k získání další počítané hodnoty čítače. Tento příklad kódu je součástí většího příkladu PerformanceCounter pro třídu.
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 obvykle používá pro čítače, které obsahují nepřepočítávané hodnoty.
Poznámka:
Pokud je Process hodnota vlastnosti InstanceLifetime a kategorie čítače výkonu byla vytvořena s rozhraním .NET Framework verze 1.0 nebo 1.1, InvalidOperationException vyvolá se vyvolá. Kategorie čítače výkonu vytvořené se staršími verzemi používají globální sdílenou paměť a hodnota musí InstanceLifetime být Global. Pokud kategorie nepoužívá aplikace spuštěné ve verzích 1.0 nebo 1.1 rozhraní .NET Framework, odstraňte kategorii a znovu ji vytvořte.
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 Uživatelé sledování výkonu nebo mít oprávnění správce.
Abyste se vyhnuli zvýšení oprávnění pro přístup k čítačům výkonu v systému Windows Vista, přidejte se do skupiny Uživatelé sledování výkonu.
V systému Windows Vista určuje řízení uživatelských účtů (UAC) oprávnění uživatele. Pokud jste členem předdefinované skupiny Administrators, máte přiřazené dva přístupové tokeny za běhu: standardní přístupový token uživatele a přístupový token správce. Ve výchozím nastavení jste ve standardní roli uživatele. Pokud chcete spustit kód, který přistupuje k čítačům výkonu, musíte nejprve zvýšit oprávnění od standardního uživatele na správce. Můžete to udělat, když spustíte aplikaci tak, že kliknete pravým tlačítkem myši na ikonu aplikace a označíte, že chcete spustit jako správce.