Compartir vía


InstanceDataCollectionCollection Clase

Definición

Proporciona una colección fuertemente tipada de objetos InstanceDataCollection.

public ref class InstanceDataCollectionCollection : System::Collections::DictionaryBase
public class InstanceDataCollectionCollection : System.Collections.DictionaryBase
type InstanceDataCollectionCollection = class
    inherit DictionaryBase
Public Class InstanceDataCollectionCollection
Inherits DictionaryBase
Herencia
InstanceDataCollectionCollection

Ejemplos

En el ejemplo de código siguiente se muestran los datos de instancia de un determinado PerformanceCounterCategory en el equipo local. En primer lugar, muestra una lista numerada de PerformanceCounterCategory nombres. Después de que el usuario escriba el número de una de las categorías, el ejemplo obtiene para InstanceDataCollectionCollection ese PerformanceCounterCategoryobjeto . A continuación, convierte la colección devuelta por la Values propiedad en una matriz de InstanceDataCollection objetos . En el ejemplo se muestran los datos de instancia asociados a cada InstanceData uno de cada InstanceDataCollection.

using System;
using System.Diagnostics;
using System.Collections;

class InstDataKeysValuesMod
{

    private static string categoryName;

    public static void Main()
    {
        string catNumStr;
        int categoryNum;

        PerformanceCounterCategory[] categories = PerformanceCounterCategory.GetCategories();

        Console.WriteLine("These categories are registered on this computer:");

        int catX;
        for(catX=0; catX<categories.Length; catX++)
        {
            Console.WriteLine("{0,4} - {1}", catX+1, categories[catX].CategoryName);
        }

        // Ask the user to choose a category.
        Console.Write("Enter the category number from the above list: ");
        catNumStr = Console.ReadLine();

        // Validate the entered category number.
        try
        {
            categoryNum = int.Parse(catNumStr);
            if (categoryNum<1||categoryNum>categories.Length)
            {
                throw new Exception(String.Format("The category number must be in the " +
                    "range 1..{0}.", categories.Length));
            }
            categoryName = categories[(categoryNum - 1)].CategoryName;
        }
        catch(Exception ex)
        {
            Console.WriteLine("\"{0}\" is not a valid category number." +
                "\r\n{1}", catNumStr, ex.Message);
            return;
        }

        // Process the InstanceDataCollectionCollection for this category.
        PerformanceCounterCategory pcc = new PerformanceCounterCategory(categoryName);
        InstanceDataCollectionCollection idColCol = pcc.ReadCategory();

        ICollection idColColKeys = idColCol.Keys;
        string[] idCCKeysArray = new string[idColColKeys.Count];
        idColColKeys.CopyTo(idCCKeysArray, 0);

        ICollection idColColValues = idColCol.Values;
        InstanceDataCollection[] idCCValuesArray = new InstanceDataCollection[idColColValues.Count];
        idColColValues.CopyTo(idCCValuesArray, 0);

        Console.WriteLine("InstanceDataCollectionCollection for \"{0}\" " +
            "has {1} elements.", categoryName, idColCol.Count);

        // Display the InstanceDataCollectionCollection Keys and Values.
        // The Keys and Values collections have the same number of elements.
        int index;
        for(index=0; index<idCCKeysArray.Length; index++)
        {
            Console.WriteLine("  Next InstanceDataCollectionCollection " +
                "Key is \"{0}\"", idCCKeysArray[index]);
            ProcessInstanceDataCollection(idCCValuesArray[index]);
        }
    }

    // Display the contents of an InstanceDataCollection.
    public static void ProcessInstanceDataCollection(InstanceDataCollection idCol)
    {

        ICollection idColKeys = idCol.Keys;
        string[] idColKeysArray = new string[idColKeys.Count];
        idColKeys.CopyTo(idColKeysArray, 0);

        ICollection idColValues = idCol.Values;
        InstanceData[] idColValuesArray = new InstanceData[idColValues.Count];
        idColValues.CopyTo(idColValuesArray, 0);

        Console.WriteLine("  InstanceDataCollection for \"{0}\" " +
            "has {1} elements.", idCol.CounterName, idCol.Count);

        // Display the InstanceDataCollection Keys and Values.
        // The Keys and Values collections have the same number of elements.
        int index;
        for(index=0; index<idColKeysArray.Length; index++)
        {
            Console.WriteLine("    Next InstanceDataCollection " +
                "Key is \"{0}\"", idColKeysArray[index]);
            ProcessInstanceDataObject(idColValuesArray[index]);
        }
    }

    // Display the contents of an InstanceData object.
    public static void ProcessInstanceDataObject(InstanceData instData)
    {
        CounterSample sample = instData.Sample;

        Console.WriteLine("    From InstanceData:\r\n      " +
            "InstanceName: {0,-31} RawValue: {1}", instData.InstanceName, instData.Sample.RawValue);
        Console.WriteLine("    From CounterSample:\r\n      " +
            "CounterType: {0,-32} SystemFrequency: {1}\r\n" +
            "      BaseValue: {2,-34} RawValue: {3}\r\n" +
            "      CounterFrequency: {4,-27} CounterTimeStamp: {5}\r\n" +
            "      TimeStamp: {6,-34} TimeStamp100nSec: {7}", sample.CounterType, sample.SystemFrequency, sample.BaseValue, sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, sample.TimeStamp, sample.TimeStamp100nSec);
    }
}
Imports System.Diagnostics
Imports System.Collections

Module InstDataKeysValuesMod

    Private categoryName As String

    Sub Main()
        Dim catNumStr As String
        Dim categoryNum As Integer

        Dim categories As PerformanceCounterCategory() = _
            PerformanceCounterCategory.GetCategories()

        Console.WriteLine( _
            "These categories are registered on this computer:")

        Dim catX As Integer
        For catX = 0 To categories.Length - 1
            Console.WriteLine("{0,4} - {1}", catX + 1, _
                categories(catX).CategoryName)
        Next catX

        ' Ask the user to choose a category.
        Console.Write( _
            "Enter the category number from the above list: ")
        catNumStr = Console.ReadLine()

        ' Validate the entered category number.
        Try
            categoryNum = Integer.Parse(catNumStr)
            If categoryNum < 1 Or categoryNum > categories.Length Then
                Throw New Exception( _
                    String.Format("The category number must be in the " & _
                        "range 1..{0}.", categories.Length))
            End If
            categoryName = categories((categoryNum - 1)).CategoryName

        Catch ex As Exception
            Console.WriteLine("""{0}"" is not a valid category number." & _
                vbCrLf & "{1}", catNumStr, ex.Message)
            Return
        End Try

        ' Process the InstanceDataCollectionCollection for this category.
        Dim pcc As New PerformanceCounterCategory(categoryName)
        Dim idColCol As InstanceDataCollectionCollection = pcc.ReadCategory()

        Dim idColColKeys As ICollection = idColCol.Keys
        Dim idCCKeysArray(idColColKeys.Count - 1) As String
        idColColKeys.CopyTo(idCCKeysArray, 0)

        Dim idColColValues As ICollection = idColCol.Values
        Dim idCCValuesArray(idColColValues.Count - 1) As InstanceDataCollection
        idColColValues.CopyTo(idCCValuesArray, 0)

        Console.WriteLine("InstanceDataCollectionCollection for ""{0}"" " & _
            "has {1} elements.", categoryName, idColCol.Count)

        ' Display the InstanceDataCollectionCollection Keys and Values.
        ' The Keys and Values collections have the same number of elements.
        Dim index As Integer
        For index = 0 To idCCKeysArray.Length - 1
            Console.WriteLine("  Next InstanceDataCollectionCollection " & _
                "Key is ""{0}""", idCCKeysArray(index))
            ProcessInstanceDataCollection(idCCValuesArray(index))
        Next index
    End Sub

    ' Display the contents of an InstanceDataCollection.
    Sub ProcessInstanceDataCollection(ByVal idCol As InstanceDataCollection)

        Dim idColKeys As ICollection = idCol.Keys
        Dim idColKeysArray(idColKeys.Count - 1) As String
        idColKeys.CopyTo(idColKeysArray, 0)

        Dim idColValues As ICollection = idCol.Values
        Dim idColValuesArray(idColValues.Count - 1) As InstanceData
        idColValues.CopyTo(idColValuesArray, 0)

        Console.WriteLine("  InstanceDataCollection for ""{0}"" " & _
            "has {1} elements.", idCol.CounterName, idCol.Count)

        ' Display the InstanceDataCollection Keys and Values.
        ' The Keys and Values collections have the same number of elements.
        Dim index As Integer
        For index = 0 To idColKeysArray.Length - 1
            Console.WriteLine("    Next InstanceDataCollection " & _
                "Key is ""{0}""", idColKeysArray(index))
            ProcessInstanceDataObject(idColValuesArray(index))
        Next index
    End Sub

    ' Display the contents of an InstanceData object.
    Sub ProcessInstanceDataObject(ByVal instData As InstanceData)
        Dim sample As CounterSample = instData.Sample

        Console.WriteLine("    From InstanceData:" & vbCrLf & "      " & _
            "InstanceName: {0,-31} RawValue: {1}", _
            instData.InstanceName, instData.Sample.RawValue)
        Console.WriteLine("    From CounterSample:" & vbCrLf & "      " & _
            "CounterType: {0,-32} SystemFrequency: {1}" & vbCrLf & _
            "      BaseValue: {2,-34} RawValue: {3}" & vbCrLf & _
            "      CounterFrequency: {4,-27} CounterTimeStamp: {5}" & vbCrLf & _
            "      TimeStamp: {6,-34} TimeStamp100nSec: {7}", _
            sample.CounterType, sample.SystemFrequency, sample.BaseValue, _
            sample.RawValue, sample.CounterFrequency, sample.CounterTimeStamp, _
            sample.TimeStamp, sample.TimeStamp100nSec)
    End Sub
End Module

Comentarios

La InstanceDataCollectionCollection clase representa la colección devuelta desde el ReadCategory método . Esta colección contiene todos los datos de contador e instancia. La colección contiene un InstanceDataCollection objeto para cada contador. Cada InstanceDataCollection objeto contiene los datos de rendimiento de todos los contadores de esa instancia. Por lo tanto, los datos se indexan por nombre de contador y, a continuación, por nombre de instancia.

Constructores

InstanceDataCollectionCollection()
Obsoletos.
Obsoletos.
Obsoletos.

Inicializa una nueva instancia de la clase InstanceDataCollectionCollection.

Propiedades

Count

Obtiene el número de elementos contenidos en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
Dictionary

Obtiene la lista de elementos incluidos en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
InnerHashtable

Obtiene la lista de elementos incluidos en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
Item[String]

Obtiene los datos de instancia para el contador especificado.

Keys

Obtiene las claves del Registro de contador y de objeto para los objetos asociados a esta recolección de datos de instancia.

Values

Obtiene los valores de los datos de instancia que forman la colección de instancias del contador.

Métodos

Clear()

Borra el contenido de la instancia de DictionaryBase.

(Heredado de DictionaryBase)
Contains(String)

Determine si en la recolección existe una recolección de datos de instancia para el contador especificado (identificado por uno de los objetos InstanceDataCollection indizados).

CopyTo(Array, Int32)

Copia los elementos de DictionaryBase a una Array unidimensional en el índice especificado.

(Heredado de DictionaryBase)
CopyTo(InstanceDataCollection[], Int32)

Copia una matriz de instancia InstanceDataCollection en la colección, en el índice especificado.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve un IDictionaryEnumerator que itera por la instancia de DictionaryBase.

(Heredado de DictionaryBase)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
OnClear()

Ejecuta procesos personalizados adicionales antes de borrar el contenido de la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnClearComplete()

Realiza procesos personalizados adicionales después de borrar el contenido de la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnGet(Object, Object)

Obtiene el elemento con la clave y valor especificados en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnInsert(Object, Object)

Realiza procesos personalizados adicionales antes de insertar un nuevo elemento en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnInsertComplete(Object, Object)

Realiza procesos personalizados adicionales después de insertar un nuevo elemento en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnRemove(Object, Object)

Realiza procesos personalizados adicionales antes de quitar un elemento de la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnRemoveComplete(Object, Object)

Realiza procesos personalizados adicionales después de quitar un elemento de la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnSet(Object, Object, Object)

Realiza procesos personalizados adicionales antes de establecer un valor en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnSetComplete(Object, Object, Object)

Realiza procesos personalizados adicionales después de establecer un valor en la instancia de DictionaryBase.

(Heredado de DictionaryBase)
OnValidate(Object, Object)

Ejecuta procesos personalizados adicionales al validar el elemento con la clave y valor especificados.

(Heredado de DictionaryBase)
ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

ICollection.IsSynchronized

Obtiene un valor que indica si el acceso a un objeto DictionaryBase está sincronizado (es seguro para subprocesos).

(Heredado de DictionaryBase)
ICollection.SyncRoot

Obtiene un objeto que se puede utilizar para sincronizar el acceso a un objeto DictionaryBase.

(Heredado de DictionaryBase)
IDictionary.Add(Object, Object)

Agrega un elemento con la clave y el valor especificados a DictionaryBase.

(Heredado de DictionaryBase)
IDictionary.Contains(Object)

Determina si DictionaryBase contiene una clave específica.

(Heredado de DictionaryBase)
IDictionary.IsFixedSize

Obtiene un valor que indica si un objeto DictionaryBase tiene un tamaño fijo.

(Heredado de DictionaryBase)
IDictionary.IsReadOnly

Obtiene un valor que indica si un objeto DictionaryBase es de solo lectura.

(Heredado de DictionaryBase)
IDictionary.Item[Object]

Obtiene o establece el valor asociado a la clave especificada.

(Heredado de DictionaryBase)
IDictionary.Keys

Obtiene un objeto ICollection que contiene las claves del objeto DictionaryBase.

(Heredado de DictionaryBase)
IDictionary.Remove(Object)

Quita el elemento con la clave especificada de DictionaryBase.

(Heredado de DictionaryBase)
IDictionary.Values

Obtiene un objeto ICollection que contiene los valores del objeto DictionaryBase.

(Heredado de DictionaryBase)
IEnumerable.GetEnumerator()

Devuelve un objeto IEnumerator que itera a través del objeto DictionaryBase.

(Heredado de DictionaryBase)

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Consulte también