Exemplarische Vorgehensweise: Ändern und Abrufen von Leistungsindikatorwerten
Aktualisiert: November 2007
Anhand der Prozeduren in dieser exemplarischen Vorgehensweise wird gezeigt, wie Sie mithilfe der Methoden der PerformanceCounter-Klasse mit den Werten eines Leistungsindikators arbeiten. Mithilfe eines Leistungsindikators erfasst Windows Leistungsdaten verschiedener Systemressourcen. Windows enthält vordefinierte, in Kategorien zusammengefasste Indikatoren, mit denen Sie interagieren können. Bei den von einem Indikator abgerufenen Werten kann es sich entweder um Rohwerte oder um berechnete Werte handeln, die im Lauf der Zeit geändert werden. Es gibt mehrere Möglichkeiten, um den aktuellen Wert eines Indikators zu erhöhen oder zu reduzieren.
In dieser exemplarischen Vorgehensweise erledigen Sie folgende Aufgaben:
Erstellen und Konfigurieren einer PerformanceCounter-Komponente zur Interaktion mit einem vom System bereitgestellten Indikator.
Erstellen einer Windows-Anwendung mit Benutzeroberflächenelementen, die Werte von einem Indikator abrufen und anzeigen.
Schreiben von Code unter Verwendung der RawValue-Eigenschaft, um den Rohwert des Indikators festzulegen und abzurufen.
Schreiben von Code mit den Methoden Increment, IncrementBy und M:System.Diagnostics.PerformanceCounter.Decrement, um den Wert des Indikators zu ändern und den neuen Wert abzurufen.
Hinweis: |
---|
Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen. |
So erstellen Sie eine Windows-Anwendung
Zeigen Sie im Menü Datei auf Neu, und klicken Sie dann auf Projekt.
Erstellen Sie im Dialogfeld Neues Projekt eine Visual Basic- oder Visual C#-Windows-Anwendung. Nennen Sie das Projekt PerformanceCounterExample.
Fügen Sie über die Registerkarte Windows Forms der Toolbox folgende Steuerelemente zur Anwendung hinzu:
Zwei Bezeichnungsfelder
Ein Textfeld
Fünf Schaltflächen
Legen Sie folgende Eigenschaften für die Steuerelemente fest:
Steuerelement
Eigenschaft
Wert
Label1
Name
lblCounterValue
Text
(leer)
Label2
Name
lblSystemCounterValue
Text
(leer)
Textbox1
Name
txtValue
Text
(leer)
Button1
Name
btnSetRawValue
Text
Rohwert des benutzerdefinierten Indikators festlegen
Button2
Name
btnGetNextValue
Text
Nächsten Wert des Systemindikators abrufen
Button3
Name
btnIncrement
Text
Increase the Custom Counter by 1
Button4
Name
btnDecrement
Text
Decrease the Custom Counter by 1
Button5
Name
btnIncrementBy
Text
Increase Custom Counter by a value
Ordnen Sie die Steuerelemente wie gewünscht an.
Speichern Sie Ihre Arbeit.
So erstellen und konfigurieren Sie die PerformanceCounter-Komponente
Öffnen Sie den Server-Explorer, und greifen Sie auf den Knoten Server zu. Weitere Informationen hierzu finden Sie unter Gewusst wie: Zugreifen auf und Initialisieren von Server-Explorer/Datenbank-Explorer.
Suchen Sie die Liste für Ihren Computer unter dem Knoten Server, und erweitern Sie ihn. Sie sehen Einträge für Leistungsindikatoren, Meldungswarteschlangen, Ereignisprotokolle und Dienste.
Erweitern Sie den Knoten Leistungsindikatoren, und suchen Sie den Knoten Prozessor.
Suchen Sie den Knoten Prozessorzeit (%), und erweitern Sie ihn.
Ziehen Sie den _Total-Indikator auf das Formular. Eine für den _Total-Indikator konfigurierte PerformanceCounter-Komponente wird zum Projekt hinzugefügt. Die Komponente erhält in Visual Basic den Namen PerformanceCounter1 und in Visual C# den Namen performanceCounter1.
So rufen Sie den Rohwert des Systemindikators ab
Doppelklicken Sie im Designer auf die Schaltfläche Nächsten Wert des Systemleistungsindikators abrufen, um den Click-Ereignishandler zu erstellen. Diese Methode meldet den berechneten Wert des Indikators, nicht den Rohwert. Fügen Sie den folgenden Code hinzu, um den nächsten Wert des Indikators abzurufen und anzuzeigen, der von der PerformanceCounter-Instanz überwacht wird:
Private Sub btnGetNextValue_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnGetNextValue.Click lblSystemCounterValue.Text = _ "The current value of the system counter is: " _ & PerformanceCounter1.NextValue().ToString() End Sub
private void btnGetNextValue_Click(object sender, System.EventArgs e) { lblSystemCounterValue.Text = "The current value of the system counter is: " + performanceCounter1.NextValue().ToString(); }
Während der restlichen Prozeduren arbeiten Sie mit einer benutzerdefinierten Kategorie und einem benutzerdefinierten Indikator.
So erstellen Sie einen benutzerdefinierten Indikator und eine benutzerdefinierte Kategorie
Klicken Sie im Menü Ansicht auf Designer, um auf den Designer für Form1 zuzugreifen.
Öffnen Sie im Designer den Server-Explorer, und greifen Sie auf den Knoten Server zu. Weitere Informationen hierzu finden Sie unter Gewusst wie: Zugreifen auf und Initialisieren von Server-Explorer/Datenbank-Explorer.
Suchen Sie die Liste für Ihren Computer unter dem Knoten Server, und erweitern Sie ihn.
Klicken Sie mit der rechten Maustaste auf den Knoten Leistungsindikatoren, und klicken Sie anschließend auf Neue Kategorie erstellen.
Das Dialogfeld Leistungsindikatoren-Generator wird angezeigt.
Geben Sie MyNewCategory als Kategoriename ein.
Klicken Sie auf Neu, um einen neuen Indikator hinzuzufügen, und nennen Sie ihn MyNewCounter. Klicken Sie auf OK, um die neue Kategorie und den neuen Indikator zu erstellen.
Hinweis: Für diesen Schritt benötigen Sie Schreibzugriff auf die Registrierung. Wenden Sie sich an den Systemadministrator, wenn Sie den neuen Indikator nicht erstellen können.
Suchen Sie im Server-Explorer nach dem neuen Indikator, und ziehen Sie ihn auf das Formular. Eine neue PerformanceCounter-Komponente wird zum Projekt hinzugefügt, die für den neuen Indikator MyNewCounter konfiguriert ist.
Hinweis: Mit diesen Schritten wird der Indikator auf Ihrem Computer erstellt. Wenn Sie diese Anwendung bereitstellen möchten, müssen Sie den Indikator auf dem Zielcomputer erstellen. Sie können dazu ein Installationsprogramm zum Projekt hinzufügen. Markieren Sie das PerformanceCounter-Objekt, und klicken Sie im Eigenschaftenfenster auf Installer hinzufügen. (Wenn Ihnen dieser Befehl nicht zur Verfügung steht, klicken Sie mit der rechten Maustaste auf das Fenster Eigenschaften, und klicken Sie auf Befehle.) Weitere Informationen hierzu finden Sie unter Einführung in Installationskomponenten.
So legen Sie den Rohwert des benutzerdefinierten Indikators fest
Wählen Sie im Designer PerformanceCounter2 in Visual Basic oder performanceCounter2 in Visual C# aus.
Legen Sie die ReadOnly-Eigenschaft auf false fest.
Doppelklicken Sie auf die Schaltfläche btnSetRawValue, um den Click-Ereignishandler im Code-Editor zu erstellen.
Fügen Sie den folgenden Code hinzu, um den Rohwert des erstellten Indikators festzulegen und den Indikatorwert auf dem ersten der Label-Steuerelemente anzuzeigen.
Private Sub btnSetRawValue_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnSetRawValue.Click PerformanceCounter2.RawValue = CLng(txtValue.Text) lblCounterValue.Text = PerformanceCounter2.NextValue().ToString() End Sub
private void btnSetRawValue_Click(object sender, System.EventArgs e) { performanceCounter2.RawValue = long.Parse(txtValue.Text); lblCounterValue.Text = performanceCounter2.NextValue().ToString();
}
So erhöhen Sie den Wert des benutzerdefinierten Indikators um Eins und zeigen ihn an
Doppelklicken Sie im Designer auf die Schaltfläche Increase the Custom Counter by 1, um den Click-Ereignishandler im Code-Editor zu erstellen.
Fügen Sie den folgenden Code hinzu, um dem benutzerdefinierten Indikator 1 hinzuzufügen und den Wert des Indikators auf dem ersten der Label-Steuerelemente anzuzeigen.
Private Sub btnIncrement_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnIncrement.Click PerformanceCounter2.Increment() lblCounterValue.Text = PerformanceCounter2.NextValue().ToString() End Sub
private void btnIncrement_Click(object sender, System.EventArgs e) { performanceCounter2.Increment(); lblCounterValue.Text = performanceCounter2.NextValue().ToString();
}
So verkleinern Sie den benutzerdefinierten Indikator und zeigen den Wert an
Doppelklicken Sie im Designer auf die Schaltfläche Decrease the Custom Counter by 1, um den Click-Ereignishandler im Code-Editor zu erstellen.
Fügen Sie den folgenden Code hinzu, um den Wert des Indikators um 1 zu verringern und den Indikatorwert auf dem ersten der Label-Steuerelemente anzuzeigen.
Private Sub btnDecrement_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnDecrement.Click PerformanceCounter2.Decrement() lblCounterValue.Text = PerformanceCounter2.NextValue().ToString() End Sub
private void btnDecrement_Click(object sender, System.EventArgs e) { performanceCounter2.Decrement(); lblCounterValue.Text = performanceCounter2.NextValue().ToString();
}
So erhöhen Sie den Wert des benutzerdefinierten Indikators um einen benutzerdefinierten Wert
Doppelklicken Sie im Designer auf die Schaltfläche Increase Custom Counter by a value, um den Click-Ereignishandler im Code-Editor zu erstellen.
Fügen Sie den folgenden Code hinzu, um den Wert des Indikators um den in das Textfeld eingegebenen Wert zu erhöhen und den Indikatorwert auf dem ersten der Label-Steuerelemente anzuzeigen.
Private Sub btnIncrementBy_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles btnIncrementBy.Click PerformanceCounter2.IncrementBy(CLng(txtValue.Text)) lblCounterValue.Text = PerformanceCounter2.NextValue().ToString() End Sub
private void btnIncrementBy_Click(object sender, System.EventArgs e) { performanceCounter2.IncrementBy(long.Parse(txtValue.Text)); lblCounterValue.Text = performanceCounter2.NextValue().ToString(); }
So testen Sie die Anwendung
Speichern Sie die Dateien.
Drücken Sie F5, um die Anwendung zu kompilieren und zu starten.
Klicken Sie auf die Schaltfläche Nächsten Wert des Systemleistungsindikators abrufen, um den aktuellen Wert des Indikators für die Processor-Kategorie abzurufen. Da Sie den Wert mit der NextValue()-Methode abrufen, gibt der erste Aufruf 0 zurück.
Im Bezeichnungsfeld wird nun der aktuelle Wert angezeigt.
Geben Sie in das Textfeld den Wert 25 ein, und klicken Sie auf Set Raw Value of Custom Counter.
Das Bezeichnungsfeld müsste aktualisiert werden und den Rohwert 25 anzeigen.
Klicken Sie auf die Schaltfläche Increase Custom Counter by 1.
Der Wert im Bezeichnungsfeld müsste nun um 1 erhöht werden.
Klicken Sie auf die Schaltfläche Decrease Custom Counter by 1.
Der Wert im Bezeichnungsfeld müsste nun um 1 verkleinert werden.
Geben Sie in das Textfeld den Wert 25 ein, und klicken Sie auf Increase Custom Counter by a value.
Der Wert im Bezeichnungsfeld müsste nun um 25 erhöht werden.
Sie können den Leistungsindikator auch im Windows-Leistungstool anzeigen.
So zeigen Sie den Leistungsindikator im Windows-Leistungstool an
Öffnen Sie das Tool Leistung, das Teil der Microsoft Management Console ist. Schlagen Sie die Schritte zum Öffnen des Tools Leistung in der Betriebssystemhilfe nach.
Klicken Sie mit der rechten Maustaste auf die Indikatorliste unter dem Leistungsdiagramm, und klicken Sie dann auf Indikatoren hinzufügen.
Wählen Sie MyNewCategory aus der Liste Leistungsobjekt und MyNewCounter aus der Indikatorliste aus. Klicken Sie zum Abschluss auf Hinzufügen.
Klicken Sie in der Symbolleiste auf Bericht anzeigen, um den Wert des Indikators anzuzeigen.
Siehe auch
Konzepte
Einführung in die Überwachung von Leistungsschwellenwerten