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
From the New Project dialog box, create a Visual Basic, Visual C#, or Visual J# Windows Application.
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
salvar seu trabalho.
Para recuperar a lista de categoria
In Design exibir, clicar duas vezes o Obter categorias botão acesso o Code Editor.
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.
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
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.
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
salvar e compilar seu aplicativo.
clicar no Obter categorias botão.Você verá uma lista de categorias na caixa de listagem.
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