Condividi tramite


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

  1. Premere F5.

  2. 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.

Vedere anche

Riferimenti

Process

System.Diagnostics

ProcessThread

Threads