CounterCreationDataCollection Classe
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.
Fournit une collection fortement typée d’objets CounterCreationData .
public ref class CounterCreationDataCollection : System::Collections::CollectionBase
[System.Serializable]
public class CounterCreationDataCollection : System.Collections.CollectionBase
[<System.Serializable>]
type CounterCreationDataCollection = class
inherit CollectionBase
Public Class CounterCreationDataCollection
Inherits CollectionBase
- Héritage
- Attributs
Exemples
L’exemple suivant montre comment utiliser la CounterCreationDataCollection classe. L’exemple crée une instance de la classe et utilise plusieurs méthodes pour ajouter des instructions à la collection, retourner leur index et ajouter ou supprimer des attributs à un point d’index spécifique.
using System;
using System.Collections;
using System.Collections.Specialized;
using System.Diagnostics;
public class App
{
private static PerformanceCounter avgCounter64Sample;
private static PerformanceCounter avgCounter64SampleBase;
public static void Main()
{
ArrayList samplesList = new ArrayList();
// If the category does not exist, create the category and exit.
// Performance counters should not be created and immediately used.
// There is a latency time to enable the counters, they should be created
// prior to executing the application that uses the counters.
// Execute this sample a second time to use the category.
if (SetupCategory())
return;
CreateCounters();
CollectSamples(samplesList);
CalculateResults(samplesList);
}
private static bool SetupCategory()
{
if ( !PerformanceCounterCategory.Exists("AverageCounter64SampleCategory") )
{
CounterCreationDataCollection counterDataCollection = new CounterCreationDataCollection();
// Add the counter.
CounterCreationData averageCount64 = new CounterCreationData();
averageCount64.CounterType = PerformanceCounterType.AverageCount64;
averageCount64.CounterName = "AverageCounter64Sample";
counterDataCollection.Add(averageCount64);
// Add the base counter.
CounterCreationData averageCount64Base = new CounterCreationData();
averageCount64Base.CounterType = PerformanceCounterType.AverageBase;
averageCount64Base.CounterName = "AverageCounter64SampleBase";
counterDataCollection.Add(averageCount64Base);
// Create the category.
PerformanceCounterCategory.Create("AverageCounter64SampleCategory",
"Demonstrates usage of the AverageCounter64 performance counter type.",
PerformanceCounterCategoryType.SingleInstance, counterDataCollection);
return(true);
}
else
{
Console.WriteLine("Category exists - AverageCounter64SampleCategory");
return(false);
}
}
private static void CreateCounters()
{
// Create the counters.
avgCounter64Sample = new PerformanceCounter("AverageCounter64SampleCategory",
"AverageCounter64Sample",
false);
avgCounter64SampleBase = new PerformanceCounter("AverageCounter64SampleCategory",
"AverageCounter64SampleBase",
false);
avgCounter64Sample.RawValue=0;
avgCounter64SampleBase.RawValue=0;
}
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 static void CalculateResults(ArrayList samplesList)
{
for(int i = 0; i < (samplesList.Count - 1); i++)
{
// Output the sample.
OutputSample( (CounterSample)samplesList[i] );
OutputSample( (CounterSample)samplesList[i+1] );
// Use .NET to calculate the counter value.
Console.WriteLine(".NET computed counter value = " +
CounterSampleCalculator.ComputeCounterValue((CounterSample)samplesList[i],
(CounterSample)samplesList[i+1]) );
// Calculate the counter value manually.
Console.WriteLine("My computed counter value = " +
MyComputeCounterValue((CounterSample)samplesList[i],
(CounterSample)samplesList[i+1]) );
}
}
//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
// Description - This counter type shows how many items are processed, on average,
// during an operation. Counters of this type display a ratio of the items
// processed (such as bytes sent) to the number of operations completed. The
// ratio is calculated by comparing the number of items processed during the
// last interval to the number of operations completed during the last interval.
// Generic type - Average
// Formula - (N1 - N0) / (D1 - D0), where the numerator (N) represents the number
// of items processed during the last sample interval and the denominator (D)
// represents the number of operations completed during the last two sample
// intervals.
// Average (Nx - N0) / (Dx - D0)
// Example PhysicalDisk\ Avg. Disk Bytes/Transfer
//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
private static Single MyComputeCounterValue(CounterSample s0, CounterSample s1)
{
Single numerator = (Single)s1.RawValue - (Single)s0.RawValue;
Single denomenator = (Single)s1.BaseValue - (Single)s0.BaseValue;
Single counterValue = numerator / denomenator;
return(counterValue);
}
// Output information about the counter sample.
private static void OutputSample(CounterSample s)
{
Console.WriteLine("\r\n+++++++++++");
Console.WriteLine("Sample values - \r\n");
Console.WriteLine(" BaseValue = " + s.BaseValue);
Console.WriteLine(" CounterFrequency = " + s.CounterFrequency);
Console.WriteLine(" CounterTimeStamp = " + s.CounterTimeStamp);
Console.WriteLine(" CounterType = " + s.CounterType);
Console.WriteLine(" RawValue = " + s.RawValue);
Console.WriteLine(" SystemFrequency = " + s.SystemFrequency);
Console.WriteLine(" TimeStamp = " + s.TimeStamp);
Console.WriteLine(" TimeStamp100nSec = " + s.TimeStamp100nSec);
Console.WriteLine("++++++++++++++++++++++");
}
}
Imports System.Collections
Imports System.Collections.Specialized
Imports System.Diagnostics
_
Public Class App
Private Shared avgCounter64Sample As PerformanceCounter
Private Shared avgCounter64SampleBase As PerformanceCounter
Public Shared Sub Main()
Dim samplesList As New ArrayList()
'If the category does not exist, create the category and exit.
'Performance counters should not be created and immediately used.
'There is a latency time to enable the counters, they should be created
'prior to executing the application that uses the counters.
'Execute this sample a second time to use the counters.
If Not (SetupCategory()) Then
CreateCounters()
CollectSamples(samplesList)
CalculateResults(samplesList)
End If
End Sub
Private Shared Function SetupCategory() As Boolean
If Not PerformanceCounterCategory.Exists("AverageCounter64SampleCategory") Then
Dim counterDataCollection As New CounterCreationDataCollection()
' Add the counter.
Dim averageCount64 As New CounterCreationData()
averageCount64.CounterType = PerformanceCounterType.AverageCount64
averageCount64.CounterName = "AverageCounter64Sample"
counterDataCollection.Add(averageCount64)
' Add the base counter.
Dim averageCount64Base As New CounterCreationData()
averageCount64Base.CounterType = PerformanceCounterType.AverageBase
averageCount64Base.CounterName = "AverageCounter64SampleBase"
counterDataCollection.Add(averageCount64Base)
' Create the category.
PerformanceCounterCategory.Create("AverageCounter64SampleCategory", _
"Demonstrates usage of the AverageCounter64 performance counter type.", _
PerformanceCounterCategoryType.SingleInstance, counterDataCollection)
Return True
Else
Console.WriteLine("Category exists - AverageCounter64SampleCategory")
Return False
End If
End Function 'SetupCategory
Private Shared Sub CreateCounters()
' Create the counters.
avgCounter64Sample = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64Sample", False)
avgCounter64SampleBase = New PerformanceCounter("AverageCounter64SampleCategory", "AverageCounter64SampleBase", False)
avgCounter64Sample.RawValue = 0
avgCounter64SampleBase.RawValue = 0
End Sub
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
Private Shared Sub CalculateResults(ByVal samplesList As ArrayList)
Dim i As Integer
For i = 0 To (samplesList.Count - 1) - 1
' Output the sample.
OutputSample(CType(samplesList(i), CounterSample))
OutputSample(CType(samplesList((i + 1)), CounterSample))
' Use .NET to calculate the counter value.
Console.WriteLine(".NET computed counter value = " + CounterSampleCalculator.ComputeCounterValue(CType(samplesList(i), CounterSample), CType(samplesList((i + 1)), CounterSample)).ToString())
' Calculate the counter value manually.
Console.WriteLine("My computed counter value = " + MyComputeCounterValue(CType(samplesList(i), CounterSample), CType(samplesList((i + 1)), CounterSample)).ToString())
Next i
End Sub
'++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
' Description - This counter type shows how many items are processed, on average,
' during an operation. Counters of this type display a ratio of the items
' processed (such as bytes sent) to the number of operations completed. The
' ratio is calculated by comparing the number of items processed during the
' last interval to the number of operations completed during the last interval.
' Generic type - Average
' Formula - (N1 - N0) / (D1 - D0), where the numerator (N) represents the number
' of items processed during the last sample interval and the denominator (D)
' represents the number of operations completed during the last two sample
' intervals.
' Average (Nx - N0) / (Dx - D0)
' Example PhysicalDisk\ Avg. Disk Bytes/Transfer
'++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++
Private Shared Function MyComputeCounterValue(ByVal s0 As CounterSample, ByVal s1 As CounterSample) As [Single]
Dim numerator As [Single] = CType(s1.RawValue, [Single]) - CType(s0.RawValue, [Single])
Dim denomenator As [Single] = CType(s1.BaseValue, [Single]) - CType(s0.BaseValue, [Single])
Dim counterValue As [Single] = numerator / denomenator
Return counterValue
End Function 'MyComputeCounterValue
' Output information about the counter sample.
Private Shared Sub OutputSample(ByVal s As CounterSample)
Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "+++++++++++")
Console.WriteLine("Sample values - " + ControlChars.Lf + ControlChars.Cr)
Console.WriteLine((" BaseValue = " + s.BaseValue.ToString()))
Console.WriteLine((" CounterFrequency = " + s.CounterFrequency.ToString()))
Console.WriteLine((" CounterTimeStamp = " + s.CounterTimeStamp.ToString()))
Console.WriteLine((" CounterType = " + s.CounterType.ToString()))
Console.WriteLine((" RawValue = " + s.RawValue.ToString()))
Console.WriteLine((" SystemFrequency = " + s.SystemFrequency.ToString()))
Console.WriteLine((" TimeStamp = " + s.TimeStamp.ToString()))
Console.WriteLine((" TimeStamp100nSec = " + s.TimeStamp100nSec.ToString()))
Console.WriteLine("++++++++++++++++++++++")
End Sub
End Class
Constructeurs
| Nom | Description |
|---|---|
| CounterCreationDataCollection() |
Initialise une nouvelle instance de la CounterCreationDataCollection classe, sans instances associées CounterCreationData . |
| CounterCreationDataCollection(CounterCreationData[]) |
Initialise une nouvelle instance de la CounterCreationDataCollection classe à l’aide du tableau d’instances CounterCreationData spécifié. |
| CounterCreationDataCollection(CounterCreationDataCollection) |
Initialise une nouvelle instance de la CounterCreationDataCollection classe à l’aide de la collection d’instances CounterCreationData spécifiée. |
Propriétés
| Nom | Description |
|---|---|
| Capacity |
Obtient ou définit le nombre d’éléments que le CollectionBase conteneur peut contenir. (Hérité de CollectionBase) |
| Count |
Obtient le nombre d’éléments contenus dans l’instance CollectionBase . Cette propriété ne peut pas être substituée. (Hérité de CollectionBase) |
| InnerList |
Obtient une ArrayList liste d’éléments dans l’instance CollectionBase . (Hérité de CollectionBase) |
| Item[Int32] |
Indexe la CounterCreationData collection. |
| List |
Obtient une IList liste d’éléments dans l’instance CollectionBase . (Hérité de CollectionBase) |
Méthodes
| Nom | Description |
|---|---|
| Add(CounterCreationData) |
Ajoute une instance de la CounterCreationData classe à la collection. |
| AddRange(CounterCreationData[]) |
Ajoute le tableau d’instances CounterCreationData spécifié à la collection. |
| AddRange(CounterCreationDataCollection) |
Ajoute la collection spécifiée d’instances CounterCreationData à la collection. |
| Clear() |
Supprime tous les objets de l’instance CollectionBase . Cette méthode ne peut pas être remplacée. (Hérité de CollectionBase) |
| Contains(CounterCreationData) |
Détermine si une CounterCreationData instance existe dans la collection. |
| CopyTo(CounterCreationData[], Int32) |
Copie les éléments du CounterCreationData tableau dans un tableau, en commençant à l’index spécifié du tableau. |
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetEnumerator() |
Retourne un énumérateur qui itère au sein de l’instance CollectionBase . (Hérité de CollectionBase) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IndexOf(CounterCreationData) |
Retourne l’index d’un CounterCreationData objet dans la collection. |
| Insert(Int32, CounterCreationData) |
Insère un CounterCreationData objet dans la collection, à l’index spécifié. |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnClear() |
Effectue des processus personnalisés supplémentaires lors de l’effacement du contenu de l’instance CollectionBase . (Hérité de CollectionBase) |
| OnClearComplete() |
Effectue des processus personnalisés supplémentaires après l’effacement du contenu de l’instance CollectionBase . (Hérité de CollectionBase) |
| OnInsert(Int32, Object) |
Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code. Effectue des processus personnalisés supplémentaires avant l’insertion d’une nouvelle entrée de données dans la collection. |
| OnInsert(Int32, Object) |
Effectue des processus personnalisés supplémentaires avant d’insérer un nouvel élément dans l’instance CollectionBase . (Hérité de CollectionBase) |
| OnInsertComplete(Int32, Object) |
Effectue des processus personnalisés supplémentaires après l’insertion d’un nouvel élément dans l’instance CollectionBase . (Hérité de CollectionBase) |
| OnRemove(Int32, Object) |
Effectue des processus personnalisés supplémentaires lors de la suppression d’un élément de l’instance CollectionBase . (Hérité de CollectionBase) |
| OnRemoveComplete(Int32, Object) |
Effectue des processus personnalisés supplémentaires après avoir supprimé un élément de l’instance CollectionBase . (Hérité de CollectionBase) |
| OnSet(Int32, Object, Object) |
Effectue des processus personnalisés supplémentaires avant de définir une valeur dans l’instance CollectionBase . (Hérité de CollectionBase) |
| OnSetComplete(Int32, Object, Object) |
Effectue des processus personnalisés supplémentaires après avoir défini une valeur dans l’instance CollectionBase . (Hérité de CollectionBase) |
| OnValidate(Object) |
Vérifie l’objet spécifié pour déterminer s’il s’agit d’un type valide CounterCreationData . |
| OnValidate(Object) |
Effectue des processus personnalisés supplémentaires lors de la validation d’une valeur. (Hérité de CollectionBase) |
| Remove(CounterCreationData) |
Supprime un CounterCreationData objet de la collection. |
| RemoveAt(Int32) |
Supprime l’élément à l’index spécifié de l’instance CollectionBase . Cette méthode n’est pas substituable. (Hérité de CollectionBase) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| ICollection.CopyTo(Array, Int32) |
Copie l’intégralité CollectionBase dans une dimension unidimensionnelle Arraycompatible, en commençant à l’index spécifié du tableau cible. (Hérité de CollectionBase) |
| ICollection.IsSynchronized |
Obtient une valeur indiquant si l’accès au CollectionBase est synchronisé (thread safe). (Hérité de CollectionBase) |
| ICollection.SyncRoot |
Obtient un objet qui peut être utilisé pour synchroniser l’accès au CollectionBase. (Hérité de CollectionBase) |
| IList.Add(Object) |
Ajoute un objet à la fin du CollectionBase. (Hérité de CollectionBase) |
| IList.Contains(Object) |
Détermine si le CollectionBase conteneur contient un élément spécifique. (Hérité de CollectionBase) |
| IList.IndexOf(Object) |
Recherche l’index spécifié Object et retourne l’index de base zéro de la première occurrence dans l’ensemble CollectionBase. (Hérité de CollectionBase) |
| IList.Insert(Int32, Object) |
Insère un élément dans l’index CollectionBase spécifié. (Hérité de CollectionBase) |
| IList.IsFixedSize |
Obtient une valeur indiquant si la CollectionBase taille est fixe. (Hérité de CollectionBase) |
| IList.IsReadOnly |
Obtient une valeur indiquant si le CollectionBase est en lecture seule. (Hérité de CollectionBase) |
| IList.Item[Int32] |
Obtient ou définit l’élément à l’index spécifié. (Hérité de CollectionBase) |
| IList.Remove(Object) |
Supprime la première occurrence d’un objet spécifique de l’objet CollectionBase. (Hérité de CollectionBase) |
Méthodes d’extension
| Nom | Description |
|---|---|
| AsParallel(IEnumerable) |
Active la parallélisation d’une requête. |
| AsQueryable(IEnumerable) |
Convertit un IEnumerable en IQueryable. |
| Cast<TResult>(IEnumerable) |
Convertit les éléments d’un IEnumerable en type spécifié. |
| OfType<TResult>(IEnumerable) |
Filtre les éléments d’une IEnumerable en fonction d’un type spécifié. |