PerformanceCounter.NextSample Metodo
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Recupera un campione del contatore e restituisce il corrispondente valore non elaborato o non calcolato.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample ();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
Un oggetto CounterSample che rappresenta il successivo valore non elaborato recuperato dal sistema per questo contatore.
L'istanza non è associata correttamente a un contatore prestazioni.
-oppure-
La proprietà InstanceLifetime viene impostata su Process se si utilizza la memoria globale condivisa.
Si è verificato un errore durante l'accesso a un'API di sistema.
Codice eseguito senza privilegi di amministratore ha tentato di leggere un contatore delle prestazioni.
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 .
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
Questo metodo viene in genere usato per i contatori che contengono valori non calcolati.
Nota
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.
Nota
Per leggere i contatori delle prestazioni in Windows Vista, Windows XP Professional x64 Edition o Windows Server 2003, è necessario essere membri del gruppo utenti di Monitor prestazioni 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 Monitor prestazioni.
In Windows Vista, la funzionalità Controllo dell'account utente determina i privilegi di un utente. Ai membri del gruppo Administrators predefinito vengono assegnati due token di accesso in fase di esecuzione, ovvero un token di accesso utente standard e un token di accesso amministratore. Per impostazione predefinita, viene assegnato il ruolo dell'utente standard. Per eseguire il codice che accede ai contatori delle prestazioni, è necessario innanzitutto elevare i privilegi dall'utente standard all'amministratore. È possibile farlo quando si avvia un'applicazione facendo clic con il pulsante destro del mouse sull'icona dell'applicazione e indicando l'opzione di esecuzione come amministratore.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: