CounterCreationDataCollection Class
Provides a strongly typed collection of CounterCreationData objects.
Assembly: System (in System.dll)
| Name | Description | |
|---|---|---|
![]() | CounterCreationDataCollection() | Initializes a new instance of the CounterCreationDataCollection class, with no associated CounterCreationData instances. |
![]() | CounterCreationDataCollection(array<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[Int32] | Indexes the CounterCreationData collection. |
![]() | List | Gets an IList containing the list of elements in the CollectionBase instance.(Inherited from CollectionBase.) |
| Name | Description | |
|---|---|---|
![]() | Add(CounterCreationData^) | Adds an instance of the CounterCreationData class to the collection. |
![]() | AddRange(array<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(CounterCreationData^) | Determines whether a CounterCreationData instance exists in the collection. |
![]() | CopyTo(array<CounterCreationData^>^, Int32) | 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 the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | IndexOf(CounterCreationData^) | Returns the index of a CounterCreationData object in the collection. |
![]() | Insert(Int32, CounterCreationData^) | Inserts a CounterCreationData object into the collection, at the specified index. |
![]() | MemberwiseClone() | |
![]() | 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(Int32, Object^) | Performs additional custom processes before inserting a new element into the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnInsertComplete(Int32, Object^) | Performs additional custom processes after inserting a new element into the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnRemove(Int32, Object^) | Performs additional custom processes when removing an element from the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnRemoveComplete(Int32, Object^) | Performs additional custom processes after removing an element from the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnSet(Int32, Object^, Object^) | Performs additional custom processes before setting a value in the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnSetComplete(Int32, Object^, Object^) | Performs additional custom processes after setting a value in the CollectionBase instance.(Inherited from CollectionBase.) |
![]() | OnValidate(Object^) | Checks the specified object to determine whether it is a valid CounterCreationData type.(Overrides CollectionBase::OnValidate(Object^).) |
![]() | Remove(CounterCreationData^) | Removes a CounterCreationData object from the collection. |
![]() | RemoveAt(Int32) | 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(Array^, Int32) | Copies the entire CollectionBase to a compatible one-dimensional Array, starting at the specified index of the target array.(Inherited from CollectionBase.) |
![]() ![]() | IList::Add(Object^) | Adds an object to the end of the CollectionBase.(Inherited from CollectionBase.) |
![]() ![]() | IList::Contains(Object^) | Determines whether the CollectionBase contains a specific element.(Inherited from CollectionBase.) |
![]() ![]() | IList::IndexOf(Object^) | Searches for the specified Object and returns the zero-based index of the first occurrence within the entire CollectionBase.(Inherited from CollectionBase.) |
![]() ![]() | IList::Insert(Int32, Object^) | Inserts an element into the CollectionBase at the specified index.(Inherited from CollectionBase.) |
![]() ![]() | IList::Remove(Object^) | Removes the first occurrence of a specific object from the CollectionBase.(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::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[Int32] | Gets or sets the element at the specified index.(Inherited from CollectionBase.) |
| Name | Description | |
|---|---|---|
![]() | AsParallel() | Overloaded. Enables parallelization of a query.(Defined by ParallelEnumerable.) |
![]() | AsQueryable() | Overloaded. Converts an IEnumerable to an IQueryable.(Defined by Queryable.) |
![]() | Cast<TResult>() | Casts the elements of an IEnumerable to the specified type.(Defined by Enumerable.) |
![]() | OfType<TResult>() | Filters the elements of an IEnumerable based on a specified type.(Defined by Enumerable.) |
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.dll> using namespace System; using namespace System::Collections; using namespace System::Collections::Specialized; using namespace System::Diagnostics; // Output information about the counter sample. void OutputSample( CounterSample s ) { Console::WriteLine( "\r\n+++++++++++" ); Console::WriteLine( "Sample values - \r\n" ); Console::WriteLine( " BaseValue = {0}", s.BaseValue ); Console::WriteLine( " CounterFrequency = {0}", s.CounterFrequency ); Console::WriteLine( " CounterTimeStamp = {0}", s.CounterTimeStamp ); Console::WriteLine( " CounterType = {0}", s.CounterType ); Console::WriteLine( " RawValue = {0}", s.RawValue ); Console::WriteLine( " SystemFrequency = {0}", s.SystemFrequency ); Console::WriteLine( " TimeStamp = {0}", s.TimeStamp ); Console::WriteLine( " TimeStamp100nSec = {0}", s.TimeStamp100nSec ); Console::WriteLine( "++++++++++++++++++++++" ); } //++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++ // 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 //++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++//++++++++ float MyComputeCounterValue( CounterSample s0, CounterSample s1 ) { float numerator = (float)s1.RawValue - (float)s0.RawValue; float denomenator = (float)s1.BaseValue - (float)s0.BaseValue; float counterValue = numerator / denomenator; return counterValue; } bool SetupCategory() { if ( !PerformanceCounterCategory::Exists( "AverageCounter64SampleCategory" ) ) { CounterCreationDataCollection^ CCDC = gcnew CounterCreationDataCollection; // Add the counter. CounterCreationData^ averageCount64 = gcnew CounterCreationData; averageCount64->CounterType = PerformanceCounterType::AverageCount64; averageCount64->CounterName = "AverageCounter64Sample"; CCDC->Add( averageCount64 ); // Add the base counter. CounterCreationData^ averageCount64Base = gcnew CounterCreationData; averageCount64Base->CounterType = PerformanceCounterType::AverageBase; averageCount64Base->CounterName = "AverageCounter64SampleBase"; CCDC->Add( averageCount64Base ); // Create the category. PerformanceCounterCategory::Create( "AverageCounter64SampleCategory", "Demonstrates usage of the AverageCounter64 performance counter type.", CCDC ); return (true); } else { Console::WriteLine( "Category exists - AverageCounter64SampleCategory" ); return (false); } } void CreateCounters( PerformanceCounter^% PC, PerformanceCounter^% BPC ) { // Create the counters. PC = gcnew PerformanceCounter( "AverageCounter64SampleCategory","AverageCounter64Sample",false ); BPC = gcnew PerformanceCounter( "AverageCounter64SampleCategory","AverageCounter64SampleBase",false ); PC->RawValue = 0; BPC->RawValue = 0; } 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 ); } } void CalculateResults( ArrayList^ samplesList ) { for ( int i = 0; i < (samplesList->Count - 1); i++ ) { // Output the sample. OutputSample( *safe_cast<CounterSample^>(samplesList[ i ]) ); OutputSample( *safe_cast<CounterSample^>(samplesList[ i + 1 ]) ); // Use .NET to calculate the counter value. Console::WriteLine( ".NET computed counter value = {0}", CounterSampleCalculator::ComputeCounterValue( *safe_cast<CounterSample^>(samplesList[ i ]), *safe_cast<CounterSample^>(samplesList[ i + 1 ]) ) ); // Calculate the counter value manually. Console::WriteLine( "My computed counter value = {0}", MyComputeCounterValue( *safe_cast<CounterSample^>(samplesList[ i ]), *safe_cast<CounterSample^>(samplesList[ i + 1 ]) ) ); } } int main() { ArrayList^ samplesList = gcnew ArrayList; PerformanceCounter^ PC; PerformanceCounter^ BPC; SetupCategory(); CreateCounters( PC, BPC ); CollectSamples( samplesList, PC, BPC ); CalculateResults( samplesList ); }
Available since 1.1
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.






