Condividi tramite


PerformanceCounter.NextSample Metodo

Definizione

Ottiene un campione di contatore e restituisce il valore non elaborato, o non calcolato, per esso.

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

Restituisce

Oggetto CounterSample che rappresenta il valore non elaborato successivo ottenuto dal sistema per questo contatore.

Eccezioni

L'istanza non è associata correttamente a un contatore delle prestazioni.

oppure

La InstanceLifetime proprietà viene impostata su Process quando si usa la memoria condivisa globale.

Si è verificato un errore durante l'accesso a un'API di sistema.

Codice in esecuzione senza privilegi amministrativi che ha tentato di leggere un contatore delle prestazioni.

Esempio

Nell'esempio di codice seguente viene illustrato come utilizzare il NextSample metodo per ottenere il valore successivo non calcolato di un contatore. Questo esempio di codice fa parte di un esempio più ampio per la PerformanceCounter classe .

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

Commenti

Questo metodo viene in genere usato per i contatori che contengono valori non calcolati.

Annotazioni

Se il valore della InstanceLifetime proprietà è Process e la categoria del contatore delle prestazioni è stata creata con .NET Framework versione 1.0 o 1.1, viene generata un'eccezione InvalidOperationException . Le categorie di contatori delle prestazioni create con le versioni precedenti usano la memoria condivisa globale e il valore per InstanceLifetime deve essere Global. Se la categoria non viene usata dalle applicazioni in esecuzione nelle versioni 1.0 o 1.1 di .NET Framework, eliminare e ricreare la categoria.

Annotazioni

Per leggere i contatori delle prestazioni in Windows Vista, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere membri del gruppo Performance Monitor Users o disporre di privilegi amministrativi.

Per evitare di dover elevare i privilegi per accedere ai contatori delle prestazioni in Windows Vista, aggiungere se stessi al gruppo Utenti di Performance Monitor.

In Windows Vista il controllo dell'account utente determina i privilegi di un utente. Se si è membri del gruppo Administrators predefinito, vengono assegnati due token di accesso in fase di esecuzione: un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, si è nel ruolo utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. A tale scopo, è possibile avviare un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando che si vuole eseguire come amministratore.

Si applica a