PerformanceCounter.NextSample Metódus

Definíció

Lekér egy számlálómintát, és visszaadja annak nyers vagy nem kiszámított értékét.

public:
 System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample

Válaszok

A CounterSample következő nyers értéket jelöli, amelyet a rendszer ehhez a számlálóhoz szerez be.

Kivételek

A példány nincs megfelelően társítva teljesítményszámlálóval.

-vagy-

A InstanceLifetime tulajdonság globális Process megosztott memória használata esetén van beállítva.

Hiba történt egy rendszer API elérésekor.

A rendszergazdai jogosultságok nélkül végrehajtó kód megkísérelt beolvasni egy teljesítményszámlálót.

Példák

Az alábbi példakód bemutatja, hogyan használhatja a NextSample metódust egy számláló következő nem kiszámított értékének lekérésére. Ez a példakód az osztály egy nagyobb példájának PerformanceCounter része.

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

Megjegyzések

Ezt a metódust általában nem kiszámított értékeket tartalmazó számlálókhoz használják.

Note

Ha a InstanceLifetime tulajdonság értéke Process, és a teljesítményszámláló kategória .NET Framework 1.0-s vagy 1.1-es verziójával lett létrehozva, a rendszer InvalidOperationException dob. A korábbi verziókban létrehozott teljesítményszámláló-kategóriák globális megosztott memóriát használnak, és a teljesítményszámlálók értékének InstanceLifetime meg kell lennie Global. Ha a kategóriát a .NET-keretrendszer 1.0-s vagy 1.1-s verzióján futó alkalmazások nem használják, törölje és hozza létre újra a kategóriát.

Note

A teljesítményszámlálók Windows Vista, Windows XP Professional x64 Edition vagy 2003-Windows Server olvasásához vagy a Performance Monitor Felhasználók csoport tagjának kell lennie, vagy rendszergazdai jogosultságokkal kell rendelkeznie.

Ha el szeretné kerülni, hogy emelje a jogosultságait a teljesítményszámlálókhoz való hozzáféréshez a Windows Vista, vegye fel magát a Performance Monitor Felhasználók csoportba.

Windows Vista rendszerben a felhasználói fiókok felügyelete (UAC) határozza meg a felhasználó jogosultságait. Ha Tagja a Beépített rendszergazdák csoportnak, két futásidejű hozzáférési jogkivonatot kap: egy standard felhasználói hozzáférési jogkivonatot és egy rendszergazdai hozzáférési jogkivonatot. Alapértelmezés szerint a szokásos felhasználói szerepkörben van. A teljesítményszámlálókhoz hozzáférő kód végrehajtásához először emelnie kell a jogosultságokat a standard felhasználóról a rendszergazdára. Ezt az alkalmazás indításakor megteheti úgy, hogy a jobb gombbal az alkalmazás ikonra kattint, és jelzi, hogy rendszergazdaként szeretne futni.

A következőre érvényes: