Folgendes Rezept ist ähnlich des vorherigen, jedoch verwenden wir dieses Mal die LINQ Technologie. Wir verwenden dabei die beiden in LINQ gebräuchlichen Syntax-Versionen (siehe Code).
Die Abfragen holen die Prozessliste anhand des MB Größenkriteriums (wie im vorherigen Rezept) UND ordnen die Prozesse zusätzlich noch nach ihrer Größe.
Beispiel : - Alle Prozesse auflisten, welche mehr als 70 MB belegen (wird via Slider gemacht (siehe vorheriges Rezept)).
(Sagen wir mal das sind zum Zeitpunkt der Ausführung 9 Prozesse.)
- Ausgabe des ersten der 9 Prozesse mit dem größten Speicherplatzverbrauch
- Ausgabe des zweiten der 9 Prozesse mit dem zweitgrößten Speicherplatzverbrauch usw.
Mir persönlich sagt diese Herangehensweise mehr zu als unser 1. Rezept.
Visual Basic Source Code
- ' Button Klick
- Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
- ' "Extension Method Syntax" (Erweiterungsmethoden-Syntax)
- Dim processes = Process.GetProcesses() _
- .Where(Function(Process) Process.WorkingSet64 > (Perc * 1024) * 1024) _
- .OrderByDescending(Function(Process) Process.WorkingSet64) _
- .Select(Function(Process) New With {Process.Id, .Name = Process.ProcessName})
- ' Ausgabe
- For Each p In processes
- MessageBox.Show("Prozess (Variante1) : " & p.Name)
- Next
- ' "Query Expression Syntax" (Abfrage-Syntax)
- Dim processes2 = _
- From process In process.GetProcesses()
- Where process.WorkingSet64 > (Perc * 1024) * 1024 _
- Order By process.WorkingSet64 Descending _
- Select New With {process.Id, .Name = process.ProcessName}
- ' Ausgabe
- For Each p In processes2
- MessageBox.Show("Prozess (Variante2) : " & p.Name)
- Next
- End Sub
