Sdílet prostřednictvím


PerformanceCounter.NextSample Metoda

Definice

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.

Platí pro