Compartilhar via


InstanceDataCollection Classe

Definição

Fornece uma coleção fortemente tipada de objetos InstanceData.

public ref class InstanceDataCollection : System::Collections::DictionaryBase
public class InstanceDataCollection : System.Collections.DictionaryBase
type InstanceDataCollection = class
    inherit DictionaryBase
Public Class InstanceDataCollection
Inherits DictionaryBase
Herança
InstanceDataCollection

Exemplos

O exemplo de código a seguir exibe os dados da instância de um determinado PerformanceCounterCategory no computador local. Primeiro, ele exibe uma lista numerada de PerformanceCounterCategory nomes. Depois que o usuário insere o número de uma das categorias, o exemplo obtém o InstanceDataCollectionCollection para esse PerformanceCounterCategory. Em seguida, converte a coleção retornada por Values em uma matriz de InstanceDataCollection objetos . O exemplo também exibe os dados de instância associados a cada InstanceData um 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

Comentários

A InstanceDataCollection classe representa uma coleção que contém todos os dados de instância de um contador. Essa coleção está contida no InstanceDataCollectionCollection ao usar o ReadCategory método .

Construtores

InstanceDataCollection(String)
Obsoleto.
Obsoleto.
Obsoleto.

Inicializa uma nova instância da classe InstanceDataCollection, usando o contador de desempenho especificado (que define uma instância de desempenho).

Propriedades

Count

Obtém o número de elementos contidos na instância de DictionaryBase.

(Herdado de DictionaryBase)
CounterName

Obtém o nome do contador de desempenho cujos dados de instância que você deseja obter.

Dictionary

Obtém a lista de elementos contidos na instância DictionaryBase.

(Herdado de DictionaryBase)
InnerHashtable

Obtém a lista de elementos contidos na instância DictionaryBase.

(Herdado de DictionaryBase)
Item[String]

Obtém os dados da instância associada a esse contador. Isso normalmente é um conjunto de valores de contador brutos.

Keys

Obtém as chaves do Registro de objeto e de contador para os objetos associados a estes dados de instância.

Values

Obtém os valores de contador brutos que compõem os dados da instância do contador.

Métodos

Clear()

Limpa o conteúdo da instância DictionaryBase.

(Herdado de DictionaryBase)
Contains(String)

Determina se uma instância de desempenho com um nome especificado (identificado por um dos objetos InstanceData indexados) existe na coleção.

CopyTo(Array, Int32)

Copia os elementos DictionaryBase para um objeto Array unidimensional no índice especificado.

(Herdado de DictionaryBase)
CopyTo(InstanceData[], Int32)

Copia os itens na coleção para a matriz unidimensional especificada no índice especificado.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna um IDictionaryEnumerator que itera pela instância de DictionaryBase.

(Herdado de DictionaryBase)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
OnClear()

Executa processos adicionais personalizados antes de limpar o conteúdo da instância de DictionaryBase.

(Herdado de DictionaryBase)
OnClearComplete()

Executa processos adicionais personalizados após limpar o conteúdo da instância DictionaryBase.

(Herdado de DictionaryBase)
OnGet(Object, Object)

Obtém o elemento com a chave e o valor especificados à instância de DictionaryBase.

(Herdado de DictionaryBase)
OnInsert(Object, Object)

Executa os processos personalizados adicionais antes de inserir um novo elemento na instância DictionaryBase.

(Herdado de DictionaryBase)
OnInsertComplete(Object, Object)

Executa processos personalizados adicionais após inserir um novo elemento na instância de DictionaryBase.

(Herdado de DictionaryBase)
OnRemove(Object, Object)

Executa processos personalizados adicionais antes de remover um elemento da instância de DictionaryBase.

(Herdado de DictionaryBase)
OnRemoveComplete(Object, Object)

Executa processos personalizados adicionais após remover um elemento da instância de DictionaryBase.

(Herdado de DictionaryBase)
OnSet(Object, Object, Object)

Executa processos personalizados adicionais antes de definir um valor na instância DictionaryBase.

(Herdado de DictionaryBase)
OnSetComplete(Object, Object, Object)

Executa processos personalizados adicionais após configurar um valor na instância de DictionaryBase.

(Herdado de DictionaryBase)
OnValidate(Object, Object)

Executa processos personalizados adicionais ao validar o elemento com a chave e o valor especificados.

(Herdado de DictionaryBase)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

ICollection.IsSynchronized

Obtém um valor que indica se o acesso a um objeto DictionaryBase é sincronizado (thread-safe).

(Herdado de DictionaryBase)
ICollection.SyncRoot

Obtém um objeto que pode ser usado para sincronizar o acesso a um objeto DictionaryBase.

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

Adiciona um elemento com a chave e o valor especificados ao DictionaryBase.

(Herdado de DictionaryBase)
IDictionary.Contains(Object)

Determina se a DictionaryBase contém uma chave específica.

(Herdado de DictionaryBase)
IDictionary.IsFixedSize

Obtém um valor que indica se o objeto DictionaryBase tem um tamanho fixo.

(Herdado de DictionaryBase)
IDictionary.IsReadOnly

Obtém um valor que indica se um objeto DictionaryBase é somente leitura.

(Herdado de DictionaryBase)
IDictionary.Item[Object]

Obtém ou define o valor associado à chave especificada.

(Herdado de DictionaryBase)
IDictionary.Keys

Obtém um objeto ICollection que contém as chaves no objeto DictionaryBase.

(Herdado de DictionaryBase)
IDictionary.Remove(Object)

Remove o elemento com a chave especificada do DictionaryBase.

(Herdado de DictionaryBase)
IDictionary.Values

Obtém um objeto ICollection que contém os valores no objeto DictionaryBase.

(Herdado de DictionaryBase)
IEnumerable.GetEnumerator()

Retorna um IEnumerator que itera pelo DictionaryBase.

(Herdado de DictionaryBase)

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também