[Visual Basic - LINQ] Prozesse auflisten

    This site uses cookies. By continuing to browse this site, you are agreeing to our use of cookies. More details

    • [Visual Basic - LINQ] Prozesse auflisten



      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

      1. ' Button Klick
      2. Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
      3. ' "Extension Method Syntax" (Erweiterungsmethoden-Syntax)
      4. Dim processes = Process.GetProcesses() _
      5. .Where(Function(Process) Process.WorkingSet64 > (Perc * 1024) * 1024) _
      6. .OrderByDescending(Function(Process) Process.WorkingSet64) _
      7. .Select(Function(Process) New With {Process.Id, .Name = Process.ProcessName})
      8. ' Ausgabe
      9. For Each p In processes
      10. MessageBox.Show("Prozess (Variante1) : " & p.Name)
      11. Next
      12. ' "Query Expression Syntax" (Abfrage-Syntax)
      13. Dim processes2 = _
      14. From process In process.GetProcesses()
      15. Where process.WorkingSet64 > (Perc * 1024) * 1024 _
      16. Order By process.WorkingSet64 Descending _
      17. Select New With {process.Id, .Name = process.ProcessName}
      18. ' Ausgabe
      19. For Each p In processes2
      20. MessageBox.Show("Prozess (Variante2) : " & p.Name)
      21. Next
      22. End Sub
      Display All