A DataTable does this job.
VB.NET:
Public Class Form1 Dim dt As New DataTable
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
Timer2.Enabled = False
Dim RunningProcesses As System.Diagnostics.Process()
RunningProcesses = System.Diagnostics.Process.GetProcesses()
Dim Proc As System.Diagnostics.Process
For Each Proc In RunningProcesses
' Need to remove duplicates and update these 3 rows.
Dim selRows As DataRow() = dt.Select("Processname='" & Proc.ProcessName & ".exe'")
If selRows.Length > 0 Then
selRows(0).Item("Processname") = Proc.ProcessName & ".exe"
selRows(0).Item("SessionID") = Proc.SessionId
selRows(0).Item("ProcessID") = Proc.Id
selRows(0).Item("WorkingSet64") = Proc.WorkingSet64
selRows(0).Item("PrivateMemorySize64") = Proc.PrivateMemorySize64
Else
Dim dr As DataRow = dt.NewRow
dr.Item("Processname") = Proc.ProcessName & ".exe"
dr.Item("SessionID") = Proc.SessionId
dr.Item("ProcessID") = Proc.Id
dr.Item("WorkingSet64") = Proc.WorkingSet64
dr.Item("PrivateMemorySize64") = Proc.PrivateMemorySize64
dt.Rows.Add(dr)
End If
Next
iteration = iteration + 1
ToolStripLabel2.Text = iteration
Timer2.Enabled = True
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
dt.Columns.Add("Processname")
dt.Columns.Add("SessionID")
dt.Columns.Add("ProcessID")
dt.Columns.Add("WorkingSet64")
dt.Columns.Add("PrivateMemorySize64")
DataGridView1.DataSource = dt
End Sub
Dim iteration As Integer = 0
Private Sub ToolStripLabel1_Click(sender As Object, e As EventArgs) Handles ToolStripLabel1.Click
If Timer2.Enabled = True Then
Timer2.Enabled = False
ToolStripLabel1.Text = "off"
Else
Timer2.Enabled = True
ToolStripLabel1.Text = "on"
End If
End Sub
End Class
Last edited: