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 exemple de compteur et retourne la valeur brute, ou non calculée, pour celle-ci.
public:
System::Diagnostics::CounterSample NextSample();
public System.Diagnostics.CounterSample NextSample();
member this.NextSample : unit -> System.Diagnostics.CounterSample
Public Function NextSample () As CounterSample
Retours
Qui CounterSample représente la valeur brute suivante obtenue par le système pour ce compteur.
Exceptions
L’instance n’est pas correctement associée à un compteur de performances.
- ou -
La InstanceLifetime propriété est définie Process lors de l’utilisation de la mémoire partagée globale.
Une erreur s’est produite lors de l’accès à une API système.
Code en cours d’exécution sans privilèges d’administration tenté de lire un compteur de performances.
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.
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.
Note
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 InstanceLifetime pour laquelle 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.
Note
Pour lire les compteurs de performances dans Windows Vista, Windows XP Professional x64 Edition ou Windows Server 2003, vous devez être membre du groupe Utilisateurs de l’Analyseur de performances ou disposer de privilèges d’administration.
Pour éviter d’avoir à élever vos privilèges pour accéder aux compteurs de performances dans Windows Vista, ajoutez-vous au groupe Utilisateurs de l’Analyseur de performances.
Dans Windows Vista, le contrôle de compte d’utilisateur (UAC) détermine les privilèges d’un utilisateur. Si vous êtes membre du groupe Administrateurs intégrés, vous disposez de deux jetons d’accès au moment de l’exécution : 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 de l’utilisateur standard à l’administrateur. Pour ce faire, lorsque vous démarrez une application, cliquez avec le bouton droit sur l’icône de l’application et indiquez que vous souhaitez exécuter en tant qu’administrateur.