Demonstra Passo a passo: Recuperando categorias e contadores

Os procedimentos descritos nesta explicação passo a passo levá-lo pelo processo de criação e configuração de PerformanceCounter instâncias de componentes e usá-los para recuperar listas de categorias de contadores de desempenho e contadores no seu sistema. Um contador de desempenho é o meio pelo qual o Windows coleta dados de desempenho vários recursos do sistema.O Windows contém um conjunto de contadores predefinidos, organizados em categorias, com o qual você pode interagir.Cada categoria e o contador está relacionado a uma área específica da funcionalidade do sistema.

Nesta explicação passo a passo você irá:

  • Criar uma instância de um PerformanceCounter componente e configurar-a para interagir com uma determinada categoria de contadores gerados pelo sistema.

  • Criar um aplicativos do Windows que exibe informações sobre as categorias e contadores em um lista caixa.

  • Use o GetCategories método para retornar uma lista de categorias no computador local.

  • Use o GetCounters método para retornar uma lista de contadores da categoria especificada.

Para criar seu aplicativos do Windows

  1. From the New Project dialog box, create a Visual Basic, Visual C#, or Visual J# Windows Application.

  2. From a Windows Forms Guia de do Caixa de ferramentas, adicione dois botões e duas caixas de listagem ao formulário.Organizá-los em qualquer ordem desejada e, em seguida, defina as seguintes propriedades para eles:

    Controle

    Propriedade

    Valor

    Button1

    Nome

    btnGetCounters

     

    Texto

    Obter contadores

    Button2

    Nome

    btnGetCategories

     

    Texto

    Obter categorias

    ListBox1

    Nome

    lstCounters

     

    ScrollAlwaysVisible

    True

    ListBox2

    Nome

    lstCategories

     

    ScrollAlwaysVisible

    True

  3. salvar seu trabalho.

Para recuperar a lista de categoria

  1. In Design exibir, clicar duas vezes o Obter categorias botão acesso o Code Editor.

  2. Na versão do Visual J#, na parte superior da tela, adicione um import fazendo referência a demonstrativo a System.Diagnostics espaço para nome.

  3. No btnGetCategories_Click procedimento, adicione o seguinte código para recuperar a lista de categorias do computador local.

    Private Sub btnGetCategories_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnGetCategories.Click
    
       Dim myCat2 As PerformanceCounterCategory()
       Dim i As Integer
       ' Remove the current contents of the list.
       Me.lstCategories.Items.Clear()
       ' Retrieve the categories.
       myCat2 = PerformanceCounterCategory.GetCategories
       ' Add the retrieved categories to the list.
       For i = 0 To myCat2.Length - 1
          Me.lstCategories.Items.Add(myCat2(i).CategoryName)
       Next
    End Sub
    
    private void btnGetCategories_Click(object sender, System.EventArgs e)
    {
       System.Diagnostics.PerformanceCounterCategory[] myCat2;
       // Remove the current contents of the list.
       this.lstCategories.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.lstCategories.Items.Add(myCat2[i].CategoryName);
       }
    }
    

Para recuperar a lista do contador

  1. In Design exibir, clicar duas vezes o Obter contadores botão para acessar o Editor de código.O ponto de inserção será posicionado no btnGetCounters_Click evento.

  2. Adicione o seguinte código para recuperar a lista de contadores da categoria selecionada.

    Private Sub btnGetCounters_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles btnGetCounters.Click
    
       Dim instanceNames() As String
       Dim counters As New System.Collections.ArrayList()
    
       If (Me.lstCategories.SelectedIndex <> -1) Then
          Dim mycat As New PerformanceCounterCategory( _
             Me.lstCategories.SelectedItem.ToString())
          ' Remove the current contents of the list.
          Me.lstCounters.Items.Clear()
          ' Retrieve the counters.
          Try
             instanceNames = mycat.GetInstanceNames()
             If (instanceNames.Length = 0) Then
                counters.AddRange(mycat.GetCounters())
             Else
                Dim i As Integer
                For i = 0 To instanceNames.Length - 1
                   counters.AddRange( _
                      mycat.GetCounters(instanceNames(i)))
                Next
             End If
             ' Add the retrieved counters to the list.
             Dim counter As PerformanceCounter
             For Each counter In counters
                Me.lstCounters.Items.Add(counter.CounterName)
             Next
          Catch ex As Exception
             MessageBox.Show( _
                "Unable to list the counters for this category:" _
                & ControlChars.CrLf & ex.Message)
          End Try
       End If
    End Sub
    
    private void btnGetCounters_Click(object sender, System.EventArgs e)
    {
       string[] instanceNames;
       System.Collections.ArrayList counters = new 
          System.Collections.ArrayList();
       if (this.lstCategories.SelectedIndex != -1) 
       {
          System.Diagnostics.PerformanceCounterCategory mycat = new 
             System.Diagnostics.PerformanceCounterCategory(
             this.lstCategories.SelectedItem.ToString());
          // Remove the current contents of the list.
          this.lstCounters.Items.Clear();
          // Retrieve the counters.
          try 
          {
             instanceNames = mycat.GetInstanceNames();
             if (instanceNames.Length == 0) 
             {
                counters.AddRange(mycat.GetCounters());
             }
             else
             {
                for (int i = 0; i < instanceNames.Length; i++)
                {
                   counters.AddRange(mycat.GetCounters(instanceNames[i]));
                }
             }
    
             // Add the retrieved counters to the list.
             foreach (System.Diagnostics.PerformanceCounter counter 
                in counters) 
             {
                this.lstCounters.Items.Add(counter.CounterName);
             }
          }
          catch (System.Exception ex)
          {
             MessageBox.Show(
                "Unable to list the counters for this category:\n" 
                + ex.Message);
          }
       }
    }
    

Para testar o aplicativo

  1. salvar e compilar seu aplicativo.

  2. clicar no Obter categorias botão.Você verá uma lista de categorias na caixa de listagem.

  3. selecionar uma das categorias e clicar no Obter contadores botão.Você verá uma lista de contadores para a categoria selecionada.

Consulte também

Conceitos

Introdução ao monitoramento de limites de desempenho

Outros recursos

Monitorando limites de desempenho

Explicações passo a passo de contador de desempenho