Freigeben über


Exemplarische Vorgehensweise: Abrufen von Kategorien und Indikatoren mit Visual J#

Die Prozeduren in dieser exemplarischen Vorgehensweise beschreiben das schrittweise Erstellen und Konfigurieren von PerformanceCounterCategory-Komponenteninstanzen. Darüber hinaus wird erläutert, wie Sie damit Listen mit Leistungsindikatorkategorien und Indikatoren auf Ihrem System abrufen können. Mit Hilfe eines Leistungsindikators erfasst Windows Leistungsdaten verschiedener Systemressourcen. Windows enthält vordefinierte Indikatoren, die in Kategorien zusammengefasst sind, mit denen Sie interagieren können. Jede Kategorie und jeder Indikator bezieht sich auf einen bestimmten Bereich von Systemfunktionen.

In dieser exemplarischen Vorgehensweise werden Sie:

  • Eine PerformanceCounterCategory-Komponente als Instanz definieren und sie so konfigurieren, dass sie mit einer bestimmten Kategorie systemgenerierter Indikatoren zusammenarbeitet.
  • Eine Windows-Anwendung erstellen, die Informationen zu Kategorien und Leistungsindikatoren in einem Listenfeld anzeigt.
  • Mit Hilfe der GetCategories-Methode auf dem lokalen Computer eine Liste von Kategorien zurückgeben.
  • Mit Hilfe der GetCounters-Methode eine Liste von Indikatoren der angegebenen Kategorie zurückgeben.

So erstellen Sie die Windows-Anwendung

  1. Erstellen Sie im Dialogfeld Neues Projekt eine Visual J# Windows-Anwendung. Nennen Sie das Projekt PerformanceCounterCategoryExample.

  2. Fügen Sie über die Registerkarte Windows Forms der Toolbox Ihrem Formular zwei Schaltflächen und zwei Listenfelder hinzu. Ordnen Sie diese in der gewünschten Reihenfolge an, und legen Sie dann die folgenden Eigenschaften dafür fest:

    Steuerelement Eigenschaft Wert
    Button1 Name btnGetCounters
      Text Leistungsindikatoren abrufen
    Button2 Name btnGetCategories
      Text Kategorien abrufen
    ListBox1 Name lstCounters
      ScrollAlwaysVisible True
    ListBox2 Name lstCategories
      ScrollAlwaysVisible True
  3. Speichern Sie Ihre Arbeit.

So rufen Sie die Kategorieliste ab

  1. Doppelklicken Sie in der Entwurfsansicht auf die Schaltfläche Kategorien abrufen. Damit öffnen Sie den Code-Editor. Der Cursor wird im btnGetCategories_Click-Ereignis positioniert.

  2. Fügen Sie am oberen Bildschirmrand eine import-Anweisung ein, die auf den System.Diagnostics-Namespace verweist.

    // Visual J#
    import System.Diagnostics.*;
    
  3. Fügen Sie in der btnGetCategories_Click-Prozedur den folgenden Code hinzu, um die Liste der Kategorien vom lokalen Computer abzurufen.

    // Visual J#
    private void btnGetCategories_Click (Object sender, System.EventArgs e)
    {
       PerformanceCounterCategory[] myCat2;
    
       // Remove the current contents of the list.
       lstCategories.get_Items().Clear();
    
       // Retrieve the categories.
       myCat2 = PerformanceCounterCategory.GetCategories();
    
       // Add the retrieved categories to the list.
       for (int i = 0; i < myCat2.length; i++) 
       {
          lstCategories.get_Items().Add(myCat2[i].get_CategoryName());
       }
    }
    

So rufen Sie die Indikatorliste ab

  1. Doppelklicken Sie in der Entwurfsansicht auf die Schaltfläche Indikator abrufen. Damit öffnen Sie den Code-Editor. Die Einfügemarke wird im btnGetCounters_Click-Ereignis platziert.

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

    // Visual J#
    private void btnGetCounters_Click (Object sender, System.EventArgs e)
    {
       String[] instanceNames;
       System.Collections.ArrayList counters = new System.Collections.ArrayList();
       if (this.lstCategories.get_SelectedIndex() != -1) 
       {
          PerformanceCounterCategory mycat = new PerformanceCounterCategory(lstCategories.get_SelectedItem().ToString());
    
          // Remove the current contents of the list.
          lstCounters.get_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.
             int cnt = counters.get_Count();
             for (int i = 0; i < cnt; i++)
             {
          lstCounters.get_Items().Add(((PerformanceCounter) counters.get_Item(i)).get_CounterName());
             }
          }
          catch (System.Exception ex)
          {
             MessageBox.Show("Unable to list the counters for this category:\n" + ex.get_Message());
          }
       }
    }
    

So testen Sie die Anwendung

  1. Speichern und kompilieren Sie die Anwendung.
  2. Klicken Sie auf die Schaltfläche Kategorien abrufen. Im Listenfeld wird eine Liste mit Kategorien angezeigt.
  3. Markieren Sie eine der Kategorien und klicken Sie auf die Schaltfläche Leistungsindikatoren abrufen. Es wird eine Liste der Leistungsindikatoren für die ausgewählte Kategorie angezeigt.

Siehe auch

Überwachen von Leistungsschwellenwerten | Einführung in die Überwachung von Leistungsschwellenwerten | Exemplarische Vorgehensweise für Leistungsindikatoren | Exemplarische Vorgehensweisen für Framework-Dienstkomponenten