Exemplarische Vorgehensweise: Abrufen von Kategorien und Leistungsindikatoren

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Die Verfahren in dieser exemplarischen Vorgehensweise führen Sie durch den Prozess der erstellen und Konfigurieren von Instanzen von Komponenten PerformanceCounter, und verwenden Sie zum Abrufen von Leistungsindikatorkategorien und Leistungsindikatoren auf Ihrem System aufgelistet. Ein Leistungsindikator ist die Möglichkeit Windows Leistungsdaten verschiedener Systemressourcen erfasst. Windows enthält vordefinierte Indikatoren, in Kategorien, mit denen Sie interagieren können organisiert. Jede Kategorie und Indikator bezieht sich auf einen bestimmten Bereich von Systemfunktionen.

In dieser exemplarischen Vorgehensweise werden Sie:

  • Instanziieren Sie eine PerformanceCounter Komponente zu und konfigurieren Sie für die Interaktion mit einer bestimmten Kategorie systemgenerierter Indikatoren.

  • Erstellen Sie eine Windows-Anwendung, die Informationen zu Kategorien und Leistungsindikatoren in einem Listenfeld anzeigt.

  • Verwenden Sie die GetCategories-Methode, um eine Liste der Kategorien auf dem lokalen Computer zurückzugeben.

  • Verwenden Sie GetCounters-Methode, um eine Liste der Leistungsindikatoren aus der angegebenen Kategorie zurückzugeben.

So erstellen Sie Ihre Windows-Anwendung

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

  2. Fügen Sie von Registerkarte Windows FormsToolbox zwei Schaltflächen und zwei Listenfelder zu Ihrem Formular. Ordnen Sie in beliebiger Reihenfolge, Sie möchten, und legen Sie die folgenden Eigenschaften dafür an:

    Steuerelement

    -Eigenschaft

    Wert

    Button1

    Name

    btnGetCounters

     

    Text

    Abrufen von Leistungsindikatoren

    Button2

    Name

    btnGetCategories

     

    Text

    Abrufen von Kategorien

    ListBox1

    Name

    lstCounters

     

    ScrollAlwaysVisible

    True

    ListBox2

    Name

    lstCategories

     

    ScrollAlwaysVisible

    True

  3. Speichern Sie Ihre Arbeit.

Abrufen der Kategorieliste

  1. Doppelklicken Sie im Entwurfsansicht auf die Kategorien abrufen Schaltfläche Zugriff auf den Code-Editor.

  2. Fügen Sie in der Prozedur btnGetCategories_Click den folgenden Code die Liste der Kategorien vom lokalen Computer abgerufen.

                                Private
                                Sub btnGetCategories_Click() Handles btnGetCategories.Click
    
       Dim myCat2 As PerformanceCounterCategory()
       Dim i AsInteger   ' 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)
       NextEndSub
    
    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);
       }
    }
    
    

Abrufen die Leistungsindikatorenliste

  1. Doppelklicken Sie im Entwurfsansicht auf die Leistungsindikatoren abrufen Schaltfläche Zugriff auf den Code-Editor. Die Einfügemarke wird im btnGetCounters_Click Ereignis positioniert.

  2. Fügen Sie folgenden Code um die Liste der Leistungsindikatoren aus der ausgewählten Kategorie abzurufen.

                                Private
                                Sub btnGetCounters_Click() Handles btnGetCounters.Click
    
       Dim instanceNames() AsStringDim counters AsNew System.Collections.ArrayList()
    
       If (Me.lstCategories.SelectedIndex <> -1) ThenDim mycat AsNew 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())
             ElseDim i AsIntegerFor i = 0 To instanceNames.Length - 1
                   counters.AddRange( 
                      mycat.GetCounters(instanceNames(i)))
                NextEndIf         ' Add the retrieved counters to the list.Dim counter As PerformanceCounter
             ForEach counter In counters
                Me.lstCounters.Items.Add(counter.CounterName)
             NextCatch ex As Exception
             MessageBox.Show( 
                "Unable to list the counters for this category:" &
                ControlChars.CrLf & ex.Message)
          EndTryEndIfEndSub
    
    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);
          }
       }
    }
    
    

Ihre Anwendung testen

  1. Speichern und Kompilieren der Anwendung.

  2. Klicken Sie auf die Schaltfläche Kategorien abrufen. Sie werden eine Liste der Kategorien im Listenfeld angezeigt.

  3. Aktivieren Sie eines der Kategorien und klicken Sie Leistungsindikatoren abrufen. Sie sehen eine Liste der Leistungsindikatoren für die ausgewählte Kategorie.

Siehe auch

Konzepte

Einführung in die Überwachung von Leistungsschwellenwerten

Weitere Ressourcen

Überwachen von Leistungsschwellenwerten

Leistung Exemplarische