Gewusst wie: Aktualisieren von Eigenschaften von Process-Komponenten
Aktualisiert: November 2007
Die Eigenschaften einer Process-Komponente werden in einem Cache gespeichert. In den Eigenschaften werden die Eigenschaftenwerte des Prozesses gespeichert, an den die Komponente gebunden ist.
Die Eigenschaften werden erst dann eingefügt, wenn Sie zum ersten Mal Eigenschaften vom Prozess anfordern. Zu diesem Zeitpunkt füllt die Komponente die zwischengespeicherten Eigenschaften mit den Eigenschaftenwerten des Prozesses auf, an den sie gebunden ist. Die Komponente erneuert diese Informationen nicht, wenn weitere Eigenschaftenwerte angefordert werden.
Um aktuelle Eigenschaftenwerte anzuzeigen, müssen Sie die Refresh-Methode der Process-Komponente aufrufen, bevor Sie die Eigenschaftenwerte des Prozesses anfordern. Wenn Sie die Refresh-Methode aufrufen, werden die Werte für die Eigenschaften der Komponente durch die aktuellen Daten aus den Eigenschaften des Zielprozesses ersetzt.
So aktualisieren Sie die Eigenschaften der Process-Komponente
Erstellen Sie eine Instanz des Prozesses programmgesteuert oder durch Hinzufügen einer Process-Komponente zum Projekt in der Entwurfsansicht. Weitere Informationen hierzu finden Sie unter Gewusst wie: Binden an vorhandene Prozesse.
Wenn vor dem Abrufen der Eigenschafteninformationen Änderungen an den Prozesseigenschaften vorgenommen wurden, rufen Sie die Refresh-Methode auf.
Legen Sie die Eigenschaften so fest, dass die entsprechenden Prozessinformationen gelesen werden, und weisen Sie den Rückgabewert einer Variablen zu.
Im folgenden Beispiel wird veranschaulicht, wie eine Instanz des Editors geöffnet und anschließend die Refresh-Methode aufgerufen wird, um die Eigenschaften der Komponente zu aktualisieren. Der Code liest dann die aktualisierte WorkingSet64-Eigenschaft der Komponente und gibt den Anteil des für den zugehörigen Prozess reservierten Arbeitsspeichers zurück. Anschließend wird der aktualisierte Eigenschaftenwert sechsmal im Abstand von jeweils zwei Sekunden in ein Konsolenfenster geschrieben. Die Konsole bleibt fünf Sekunden nach Beendigung der Prozedur geöffnet.
Dim Notepad As New Process() Dim i As Integer Notepad = Process.Start("Notepad.exe") For i = 0 To 5 ' Forces the Process component to get a new set of property values. Notepad.Refresh() ' Writes the property value to the console screen. Console.WriteLine(Notepad.WorkingSet64) ' Waits two seconds before running the next loop. System.Threading.Thread.Sleep(2000) Next ' Closes Notepad and waits 5 seconds before closing the console screen. Notepad.CloseMainWindow() System.Threading.Thread.Sleep(5000)
Process notepad; notepad = Process.Start("Notepad"); for (int i = 0; i < 5; i++) { // Forces the Process component to get a new set // of property values. notepad.Refresh(); // Writes the property value to the console screen. Console.WriteLine(notepad.WorkingSet64.ToString()); // Waits two seconds before running the next loop. System.Threading.Thread.Sleep(2000); } // Closes Notepad and waits 5 seconds before closing // the console screen. notepad.CloseMainWindow(); System.Threading.Thread.Sleep(5000);
Siehe auch
Aufgaben
Gewusst wie: Binden an vorhandene Prozesse
Gewusst wie: Anzeigen laufender Prozesse
Konzepte
Einführung in die Überwachung und Verwaltung von Windows-Prozessen