Esempio di gestione dei processi
Aggiornamento: novembre 2007
In questo esempio vengono utilizzati gli oggetti dello spazio dei nomi System.Diagnostics per raccogliere informazioni su un processo in esecuzione.
Per ottenere esempi e istruzioni per la relativa installazione
Effettuare una delle seguenti operazioni:
Dal menu Guida, scegliere Esempi.
Il file Readme contiene informazioni sugli esempi.
Visitare il sito Web Visual Studio 2008 Samples (informazioni in lingua inglese). Su tale sito sono disponibili le versioni più recenti degli esempi.
Individuare gli esempi sul computer in cui è installato Visual Studio. Il percorso di installazione predefinito degli esempi e del file Readme relativo è unità:\Programmi\Microsoft Visual Studio 9.0\Samples\lcid. Per le versioni Express di Visual Studio tutti gli esempi sono disponibili in linea.
Per ulteriori informazioni, vedere Individuazione dei file di esempio.
Nota sulla sicurezza: |
---|
In questo esempio di codice viene illustrato un concetto e viene presentato solo il codice rilevante. È possibile che questo esempio non soddisfi i requisiti di sicurezza per un ambiente specifico ed è opportuno non utilizzarlo così come viene riportato. È consigliabile aggiungere codice relativo alla sicurezza e alla gestione degli errori per rendere i progetti più sicuri e potenti. Microsoft fornisce questo esempio di codice "COSÌ COM'È" senza garanzie. |
Per eseguire l'esempio
Premere F5.
Fare clic su un processo per caricare i dettagli e i dati dei thread. Utilizzare i menu per visualizzare l'elenco dei moduli caricati da un determinato processo. Premere F5 mentre il programma è in esecuzione per aggiornare l'elenco dei processi.
Dimostrazione
I processi nel computer corrente vengono visualizzati in un controllo ListView chiamando il metodo GetProcesses. Quando si seleziona un processo, i dettagli sul processo vengono visualizzati in un altro controllo ListView. I dettagli del processo vengono recuperati utilizzando l'istanza di Process che rappresenta il processo. Viene utilizzata la proprietà Threads per enumerare i thread del processo, che vengono quindi visualizzati in un altro controllo ListView. Ogni thread è rappresentato da un'istanza di ProcessThread. È possibile ispezionare i moduli di ogni processo selezionando un processo e scegliendo Moduli dal menu principale o dal menu di scelta rapida. In un form distinto vengono visualizzati i moduli caricati dal processo e il nome del file in cui è stato caricato il codice.
Vi sono tre processi che non forniscono informazioni complete:
_Total Questo processo viene aggiunto nel codice e non rappresenta un processo effettivo. Viene utilizzato per fornire informazioni di riepilogo sulla durata dell'esecuzione e sull'utilizzo del processore.
Idle Sebbene venga restituito come processo, non è un processo in grado di restituire dati.
System Questo processo non espone informazioni sui moduli.
Se non è possibile accedere a tutte le informazioni su un processo, viene visualizzato un messaggio.