Nyelv

CounterCreationDataCollection Osztály

Definíció

Erősen gépelt objektumgyűjteményt CounterCreationData biztosít.

public ref class CounterCreationDataCollection : System::Collections::CollectionBase
public class CounterCreationDataCollection : System.Collections.CollectionBase
[System.Serializable]
public class CounterCreationDataCollection : System.Collections.CollectionBase
type CounterCreationDataCollection = class
    inherit CollectionBase
[<System.Serializable>]
type CounterCreationDataCollection = class
    inherit CollectionBase
Public Class CounterCreationDataCollection
Inherits CollectionBase
Öröklődés
CounterCreationDataCollection
Attribútumok

Példák

Az alábbi példa bemutatja az osztály használatát CounterCreationDataCollection . A példa létrehoz egy új osztálypéldányt, és több módszerrel is utasításokat ad hozzá a gyűjteményhez, visszaadja az indexet, és attribútumokat ad hozzá vagy távolít el egy adott indexponton.

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

Konstruktorok

Name Description
CounterCreationDataCollection()

Inicializálja az CounterCreationDataCollection osztály új példányát társított példányok nélkül CounterCreationData .

CounterCreationDataCollection(CounterCreationData[])

Inicializálja az CounterCreationDataCollection osztály új példányát a megadott példánytömb CounterCreationData használatával.

CounterCreationDataCollection(CounterCreationDataCollection)

Inicializálja az CounterCreationDataCollection osztály új példányát a megadott példánygyűjtemény CounterCreationData használatával.

Tulajdonságok

Name Description
Capacity

Lekéri vagy beállítja a tartalmazható elemek CollectionBase számát.

(Öröklődés forrása CollectionBase)
Count

Lekéri a példányban CollectionBase található elemek számát. Ez a tulajdonság nem bírálható felül.

(Öröklődés forrása CollectionBase)
InnerList

ArrayList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)
Item[Int32]

Indexeli a gyűjteményt CounterCreationData .

List

IList Lekéri a példány elemeinek CollectionBase listáját.

(Öröklődés forrása CollectionBase)

Metódusok

Name Description
Add(CounterCreationData)

Hozzáadja az CounterCreationData osztály egy példányát a gyűjteményhez.

AddRange(CounterCreationData[])

Hozzáadja a megadott példánytömböt CounterCreationData a gyűjteményhez.

AddRange(CounterCreationDataCollection)

Hozzáadja a megadott példánygyűjteményt CounterCreationData a gyűjteményhez.

Clear()

Eltávolítja az összes objektumot a CollectionBase példányból. Ez a metódus nem bírálható felül.

(Öröklődés forrása CollectionBase)
Contains(CounterCreationData)

Meghatározza, hogy létezik-e példány CounterCreationData a gyűjteményben.

CopyTo(CounterCreationData[], Int32)

Másolja a CounterCreationData tömb elemeit egy tömbbe a tömb megadott indexétől kezdve.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetEnumerator()

Egy enumerátort ad vissza, amely a példányon keresztül CollectionBase iterál.

(Öröklődés forrása CollectionBase)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IndexOf(CounterCreationData)

A gyűjteményben CounterCreationData lévő objektum indexét adja vissza.

Insert(Int32, CounterCreationData)

Objektum beszúrása CounterCreationData a gyűjteménybe a megadott indexben.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
OnClear()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlésekor.

(Öröklődés forrása CollectionBase)
OnClearComplete()

További egyéni folyamatokat hajt végre a példány tartalmának CollectionBase törlése után.

(Öröklődés forrása CollectionBase)
OnInsert(Int32, Object)

Ez az API a termékinfrastruktúrát támogatja, és közvetlenül a kódból nem használható.

További egyéni folyamatokat hajt végre, mielőtt új adatbevitelt szúr be a gyűjteménybe.

OnInsert(Int32, Object)

További egyéni folyamatokat hajt végre, mielőtt új elemet szúr be a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnInsertComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután beszúrt egy új elemet a CollectionBase példányba.

(Öröklődés forrása CollectionBase)
OnRemove(Int32, Object)

További egyéni folyamatokat hajt végre, amikor eltávolít egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnRemoveComplete(Int32, Object)

További egyéni folyamatokat hajt végre, miután eltávolított egy elemet a CollectionBase példányból.

(Öröklődés forrása CollectionBase)
OnSet(Int32, Object, Object)

További egyéni folyamatokat hajt végre, mielőtt beállít egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnSetComplete(Int32, Object, Object)

További egyéni folyamatokat hajt végre, miután beállított egy értéket a CollectionBase példányban.

(Öröklődés forrása CollectionBase)
OnValidate(Object)

Ellenőrzi a megadott objektumot annak megállapításához, hogy érvényes-e CounterCreationData .

OnValidate(Object)

További egyéni folyamatokat hajt végre egy érték ellenőrzésekor.

(Öröklődés forrása CollectionBase)
Remove(CounterCreationData)

Eltávolít egy CounterCreationData objektumot a gyűjteményből.

RemoveAt(Int32)

Eltávolítja az elemet a példány megadott indexéből CollectionBase . Ez a módszer nem bírálható felül.

(Öröklődés forrása CollectionBase)
ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

Explicit interfész-implementációk

Name Description
ICollection.CopyTo(Array, Int32)

A teljes CollectionBase példányt egy kompatibilis egydimenziósra Arraymásolja a céltömb megadott indexétől kezdve.

(Öröklődés forrása CollectionBase)
ICollection.IsSynchronized

Beolvas egy értéket, amely jelzi, hogy a CollectionBase hozzáférés szinkronizálva van-e (a szál biztonságos).

(Öröklődés forrása CollectionBase)
ICollection.SyncRoot

Lekéri az objektumot, amely a hozzáférés szinkronizálására használható.CollectionBase

(Öröklődés forrása CollectionBase)
IList.Add(Object)

Objektumot ad hozzá a CollectionBasevégéhez.

(Öröklődés forrása CollectionBase)
IList.Contains(Object)

Meghatározza, hogy az CollectionBase adott elem tartalmaz-e.

(Öröklődés forrása CollectionBase)
IList.IndexOf(Object)

Megkeresi a megadott Object értéket, és a teljes első CollectionBaseelőfordulás nulla alapú indexét adja vissza.

(Öröklődés forrása CollectionBase)
IList.Insert(Int32, Object)

Elemet szúr be a CollectionBase megadott indexbe.

(Öröklődés forrása CollectionBase)
IList.IsFixedSize

Egy értéket kap, amely jelzi, hogy a CollectionBase méret rögzített-e.

(Öröklődés forrása CollectionBase)
IList.IsReadOnly

Beolvas egy értéket, amely jelzi, hogy az CollectionBase írásvédett-e.

(Öröklődés forrása CollectionBase)
IList.Item[Int32]

Lekéri vagy beállítja az elemet a megadott indexen.

(Öröklődés forrása CollectionBase)
IList.Remove(Object)

Eltávolítja egy adott objektum első előfordulását a CollectionBase.

(Öröklődés forrása CollectionBase)

Bővítő metódusok

Name Description
AsParallel(IEnumerable)

Lehetővé teszi a lekérdezés párhuzamosítását.

AsQueryable(IEnumerable)

Átalakítja az egyiket IEnumerableIQueryable.

Cast<TResult>(IEnumerable)

Egy elem elemeit IEnumerable a megadott típusra veti.

OfType<TResult>(IEnumerable)

Egy adott típus alapján szűri IEnumerable egy adott elem elemeit.

A következőre érvényes: