Home Page Home Page Tips & Tricks Come elencare i processi attivi con .NET ?

Come elencare i processi attivi con .NET ?


Chi da tempo usa sistemi operativi costruiti sul kernel di Windows NT avrà imparato a conoscere il Task Manager. Il Task Manager è un Tool di Windows molto utile e abbastanza evoluto che non solo ci permette di elencare i processi caricati in un particolare momento in RAM ma ci fornisce anche altre informazioni relative all'occupazione di memoria, uso di CPU, Handle aperti e così via.

Il Task Manager di Windows
Il Task Manager di Windows


Potrebbe nascere quindi la necessità di dover ricavare alcune informazioni contenute nel Task Manager ed utilizzarle nelle nostre applicazioni .NET, per esempio appunto l'elenco dei processi attivi.

Il Framework .NET è abbastanza vasto e dotato di classi che ci permettono di ricavare queste informazioni. Nel nostro esempio faremo riferimento alla classe Process contenuta nel namespace System.Diagnostic. Dopo aver quindi importato il namespace potremo scrivere questo codice:

VB.NET
Codice .NET n°1
Dim temp As Process()
temp = Process.GetProcesses()

Dim x As Integer
For x = 0 To temp.Length - 1
Console.WriteLine("Process: " + temp(x).ProcessName)
Next



C#
Codice .NET n°2
Process[] temp=Process.GetProcesses();

for (int x=0;x<temp.Length;x++)
Console.WriteLine("Process: " + temp[x].ProcessName);


L'output prodotto da questi due frammenti di codice sarà il seguente:

Il programma in esecuzione
Il programma in esecuzione


In questi cicli abbiamo solo stampato il ProcessName, la classe Process però espone molte altre proprietà dei processi, eccone alcune elencate:

- ID (il PID del processo)
- PagedMemorySize
- PagedSystemMemorySize
- VirtualMemorySize
- Threads
- HandleCount
- PriorityClass
- ecc.
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5