PerformanceCounter.NextSample Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient un échantillon de compteur et retourne sa valeur brute ou non calculée.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample ();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
Retours
CounterSample représentant la prochaine valeur brute obtenue par le système pour ce compteur.
Exceptions
L'instance n'est pas correctement associée à un compteur de performance.
- ou -
La propriété InstanceLifetime a la valeur Process lorsqu'elle utilise la mémoire partagée globale.
Une erreur s'est produite lors de l'accès à une API système.
Code s'exécutant sans privilèges d'administrateur, destiné à lire un compteur de performance.
Exemples
L’exemple de code suivant montre comment utiliser la NextSample méthode pour obtenir la valeur non calculée suivante d’un compteur. Cet exemple de code fait partie d’un exemple plus grand pour 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
Remarques
Cette méthode est généralement utilisée pour les compteurs qui contiennent des valeurs non calculées.
Notes
Si la valeur de la InstanceLifetime propriété est Process et que la catégorie de compteur de performances a été créée avec .NET Framework version 1.0 ou 1.1, une InvalidOperationException valeur est levée. Les catégories de compteurs de performances créées avec des versions antérieures utilisent la mémoire partagée globale, et la valeur pour InstanceLifetime doit être Global. Si la catégorie n’est pas utilisée par les applications s’exécutant sur les versions 1.0 ou 1.1 du .NET Framework, supprimez et recréez la catégorie.
Notes
Pour lire les compteurs de performances dans Windows Vista, Windows XP Professionnel Édition x64 ou Windows Server 2003, vous devez être membre du groupe Utilisateurs Analyseur de performances ou disposer de privilèges d’administrateur.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista, ajoutez-vous au groupe utilisateurs Analyseur de performances.
Dans Windows Vista, le contrôle de compte d'utilisateur détermine les privilèges d'un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, deux jetons d'accès au moment de l'exécution vous sont assignés : un jeton d'accès utilisateur standard et un jeton d'accès administrateur. Par défaut, vous êtes dans le rôle d'utilisateur standard. Pour exécuter le code qui accède aux compteurs de performances, vous devez d’abord élever vos privilèges d’utilisateur standard à administrateur. Vous pouvez effectuer cela au démarrage d'une application en cliquant avec le bouton droit sur l'icône de l'application et en indiquant que vous voulez l'exécuter en tant qu'administrateur.