Procedura: analizzare l'utilizzo dei thread per i processi

Aggiornamento: novembre 2007

È possibile visualizzare i thread dei processi leggendo il valore della proprietà Threads del componente Process. Viene restituito un valore di tipo ProcessThreadCollection, contenente un insieme di oggetti ProcessThread che rappresentano i thread del sistema operativo correntemente in esecuzione nel processo. È quindi possibile scorrere l'insieme per visualizzare le proprietà dei singoli thread. Il thread primario non è necessariamente rappresentato dal thread con indice 0 dell'insieme.

Per analizzare l'utilizzo dei thread per un processo

  1. Se il processo non è stato avviato da un componente Process, associare un componente Process al processo desiderato. Per ulteriori informazioni, vedere Procedura: eseguire l'associazione a processi esistenti.

  2. Assegnare il valore della proprietà Threads del processo a una variabile di un insieme vuoto di tipo ProcessThread.

  3. Scorrere l'indice della matrice per visualizzare le proprietà di un singolo thread.

    Nell'esempio riportato di seguito viene illustrato come leggere la proprietà Threads del Blocco note e assegnare il valore a una matrice vuota. Il valore BasePriority del primo thread nella matrice ProcessThread viene quindi letto e visualizzato in una casella di testo denominata TextBox1.

    Dim myCollection As ProcessThreadCollection
    Dim myProcesses() As Process
    ' Create an instance of the Process Component and associate 
    ' it to the target process.
    myProcesses = Process.GetProcessesByName("Notepad.exe")
    ' Read the Process.Threads property and assign it to the empty array.
    myCollection = myProcesses(0).Threads
    ' Read desired ProcessThread property.
    Me.Textbox1.Text = myCollection(0).BasePriority.ToString()
    
         ProcessThreadCollection threads;
            Process[] notepads;
            // Retrieve the Notepad processes.
            notepads = Process.GetProcessesByName("Notepad");
            // Read the Process.Threads property.
            threads = notepads[0].Threads;
            // Read desired ProcessThread property.
            TextBox1.Text = threads[0].BasePriority.ToString();
    

Vedere anche

Attività

Procedura: eseguire l'associazione a processi esistenti

Procedura: creare componenti Process

Concetti

Introduzione al monitoraggio e alla gestione di processi Windows

Altre risorse

Recupero di informazioni sui processi

Gestione di processi