Compartilhar via


Como: Recuperar listas de contadores e categorias

Você pode usar o GetCounters método na PerformanceCounterCategory classe para recuperar rapidamente uma lista de todos os contadores ou instâncias em uma categoria específica. Cada vez que você solicitação um valor de uma categoria, criando uma instância de um PerformanceCounter objeto, definindo-a como um contador existente e recuperar um valor, o sistema lê a categoria inteira e recupera o contador solicitação ed. Isso significa que se você solicitar cinco diferentes contadores de uma categoria que contém os contadores de 20, o sistema lê todos os 20 contadores na categoria cinco vezes, procurando por cada contador separadamente.Usando GetCounters, você obter os mesmos dados, mas a categoria é lido apenas uma vez.

The GetCounters método retorna uma matriz do tipo PerformanceCounter que contém os contadores na categoria. Você pode usar o Item propriedade para trabalhar com o Sumário da coleção.

Como recuperar contadores, você também pode usar o estático GetCategories método para retornar uma lista de categorias no computador corrente ou qualquer servidor ao qual você tem acesso. GetCategories Retorna uma matriz de PerformanceCounterCategory objetos.

Para recuperar contadores em uma categoria

  1. Criar um PerformanceCounter objeto e configurá-lo para que ela aponta para a categoria desejada. Para obter mais informações, consulte Como: Criar instâncias de componentes do contador de desempenho ou Como: Configurar PerformanceCounter componente Instances.

  2. Criar uma matriz do tipo PerformanceCounter para conter a lista resultante de categoria.

  3. Chamar o GetCounters método na PerformanceCounterCategory classe e especifique a categoria desejada sistema autônomo um parâmetro.

  4. conjunto os resultados para o array.

    O exemplo a seguir mostra como recuperar todos os contadores no Cache categoria. Esse código supõe que você está trabalhando em um aplicativo Windows Forms que contém um botão e um ListBox controle. Ele também pressupõe que você tenha uma referência a sistema.dll e um Imports demonstrativo (para Visual Basic) ou um using demonstrativo (para translation from VPE for Csharp) para o System.Diagnostics namespace:

    Private Sub btnGetCounters_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnGetCounters.Click
       Dim mypc() As PerformanceCounter
       Dim i As Integer
       Dim myCat As New PerformanceCounterCategory("Cache")
       ' Remove the current contents of the list.
       Me.ListBox1.Items.Clear()
       ' Retrieve the counters.
       mypc = myCat.GetCounters
       ' Add the retrieved counters to the list.
       For i = 0 To mypc.Length - 1
          Me.ListBox1.Items.Add(mypc(i).CounterName)
       Next
    End Sub
    
     private void btnGetCounters_Click(object sender, EventArgs e)
        {
            System.Diagnostics.PerformanceCounter[] mypc;
            System.Diagnostics.PerformanceCounterCategory mycat =
               new System.Diagnostics.PerformanceCounterCategory("cache");
            // Remove the current contents of the list.
            this.listBox1.Items.Clear();
            // Retrieve the counters.
            mypc = mycat.GetCounters();
            // Add the retrieved counters to the list.
            for (int i = 0; i < mypc.Length; i++)
            {
                this.listBox1.Items.Add(mypc[i].CounterName);
            }
        }
    

Para recuperar todas as categorias em um computador

  1. Criar uma matriz do tipo PerformanceCounter para conter a lista resultante de categoria.

  2. Chamar o GetCategories método na PerformanceCounterCategory classe e especifique a categoria desejada sistema autônomo um parâmetro.

  3. conjunto os resultados para o array.

    O código a seguir mostra como recuperar todas as categorias no computador local.Esse código supõe que você está trabalhando em um aplicativo Windows Forms que contém um botão e um ListBox controle. Ele também pressupõe que você tenha uma referência a sistema.dll e um Imports demonstrativo (para Visual Basic) ou um using demonstrativo (para translation from VPE for Csharp) para o System.Diagnostics namespace:

    Private Sub btnGetCategories_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs)
       Dim myCat2 As PerformanceCounterCategory()
       Dim i As Integer
       ' Clear the contents of the list box.
       Me.listBox2.Items.Clear()
       ' Retrieve the categories.
       myCat2 = PerformanceCounterCategory.GetCategories
       ' Add the retrieved categories to the list.
       For i = 0 To myCat2.Length - 1
          Me.listBox2.Items.Add(myCat2(i).CategoryName)
       Next
    End Sub
    
     private void btnGetCategories_Click(object sender, EventArgs e)
        {
            System.Diagnostics.PerformanceCounterCategory[] myCat2;
            // Clear the list's current contents.
            this.listBox2.Items.Clear();
            // Retrieve the categories.
            myCat2 =
               System.Diagnostics.PerformanceCounterCategory.GetCategories();
            // Add the retrieved categories to the list.
            for (int i = 0; i < myCat2.Length; i++)
            {
                this.listBox2.Items.Add(myCat2[i].CategoryName);
            }
        }
    

Consulte também

Tarefas

Como: Criar instâncias de componentes do contador de desempenho

Como: Configurar PerformanceCounter componente Instances

Conceitos

Recuperação de valor contador de desempenho