CounterCreationDataCollection Class
Provides a strongly typed collection of CounterCreationData objects.
Namespace: System.Diagnostics
Assembly: System (in System.dll)
The CounterCreationDataCollection type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | CounterCreationDataCollection() | Initializes a new instance of the CounterCreationDataCollection class, with no associated CounterCreationData instances. |
![]() | CounterCreationDataCollection(CounterCreationData[]) | Initializes a new instance of the CounterCreationDataCollection class by using the specified array of CounterCreationData instances. |
![]() | CounterCreationDataCollection(CounterCreationDataCollection) | Initializes a new instance of the CounterCreationDataCollection class by using the specified collection of CounterCreationData instances. |
| Name | Description | |
|---|---|---|
![]() | Capacity | Gets or sets the number of elements that the CollectionBase can contain. (Inherited from CollectionBase.) |
![]() | Count | Gets the number of elements contained in the CollectionBase instance. This property cannot be overridden. (Inherited from CollectionBase.) |
![]() | InnerList | Gets an ArrayList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | Item | Indexes the CounterCreationData collection. |
![]() | List | Gets an IList containing the list of elements in the CollectionBase instance. (Inherited from CollectionBase.) |
| Name | Description | |
|---|---|---|
![]() | Add | Adds an instance of the CounterCreationData class to the collection. |
![]() | AddRange(CounterCreationData[]) | Adds the specified array of CounterCreationData instances to the collection. |
![]() | AddRange(CounterCreationDataCollection) | Adds the specified collection of CounterCreationData instances to the collection. |
![]() | Clear | Removes all objects from the CollectionBase instance. This method cannot be overridden. (Inherited from CollectionBase.) |
![]() | Contains | Determines whether a CounterCreationData instance exists in the collection. |
![]() | CopyTo | Copies the elements of the CounterCreationData to an array, starting at the specified index of the array. |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object. (Inherited from Object.) |
![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() | GetEnumerator | Returns an enumerator that iterates through the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | IndexOf | Returns the index of a CounterCreationData object in the collection. |
![]() | Insert | Inserts a CounterCreationData object into the collection, at the specified index. |
![]() | MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | OnClear | Performs additional custom processes when clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnClearComplete | Performs additional custom processes after clearing the contents of the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnInsert | Performs additional custom processes before inserting a new element into the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnInsertComplete | Performs additional custom processes after inserting a new element into the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnRemove | Performs additional custom processes when removing an element from the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnRemoveComplete | Performs additional custom processes after removing an element from the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnSet | Performs additional custom processes before setting a value in the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnSetComplete | Performs additional custom processes after setting a value in the CollectionBase instance. (Inherited from CollectionBase.) |
![]() | OnValidate | Checks the specified object to determine whether it is a valid CounterCreationData type. (Overrides CollectionBase.OnValidate(Object).) |
![]() | Remove | Removes a CounterCreationData object from the collection. |
![]() | RemoveAt | Removes the element at the specified index of the CollectionBase instance. This method is not overridable. (Inherited from CollectionBase.) |
![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | ICollection.CopyTo | Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array. (Inherited from CollectionBase.) |
![]() ![]() | ICollection.IsSynchronized | Gets a value indicating whether access to the CollectionBase is synchronized (thread safe). (Inherited from CollectionBase.) |
![]() ![]() | ICollection.SyncRoot | Gets an object that can be used to synchronize access to the CollectionBase. (Inherited from CollectionBase.) |
![]() ![]() | IList.Add | Adds an object to the end of the CollectionBase. (Inherited from CollectionBase.) |
![]() ![]() | IList.Contains | Determines whether the CollectionBase contains a specific element. (Inherited from CollectionBase.) |
![]() ![]() | IList.IndexOf | Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase. (Inherited from CollectionBase.) |
![]() ![]() | IList.Insert | Inserts an element into the CollectionBase at the specified index. (Inherited from CollectionBase.) |
![]() ![]() | IList.IsFixedSize | Gets a value indicating whether the CollectionBase has a fixed size. (Inherited from CollectionBase.) |
![]() ![]() | IList.IsReadOnly | Gets a value indicating whether the CollectionBase is read-only. (Inherited from CollectionBase.) |
![]() ![]() | IList.Item | Gets or sets the element at the specified index. (Inherited from CollectionBase.) |
![]() ![]() | IList.Remove | Removes the first occurrence of a specific object from the CollectionBase. (Inherited from CollectionBase.) |
The following example demonstrates how to use the CounterCreationDataCollection class. The example creates a new instance of the class and uses several methods to add statements to the collection, return their index, and add or remove attributes at a specific index point.
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("++++++++++++++++++++++"); } }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.






