Procedura: aggiornare le proprietà del componente Process

Aggiornamento: novembre 2007

Le proprietà di un componente Process vengono memorizzate in una cache e vengono utilizzate per memorizzare i valori delle proprietà del processo a cui il componente è associato.

Tali proprietà non vengono inserite fino a quando non viene effettuata la prima richiesta delle proprietà dal processo. A questo punto il componente consente di inserire nelle proprietà presenti nella cache i valori delle proprietà del processo a cui è associato. Queste informazioni non vengono aggiornate dal componente quando vengono effettuate richieste successive dei valori delle proprietà.

Per visualizzare i valori correnti delle proprietà, è necessario chiamare il metodo Refresh del componente Process prima di richiedere i valori delle proprietà del processo. Quando si chiama il metodo Refresh, i valori delle proprietà del componente vengono sostituiti con i dati correnti delle proprietà del processo di destinazione.

Per aggiornare le proprietà del componente Process

  1. Creare un'istanza del processo a livello di codice o aggiungendo un componente Process al progetto in visualizzazione Progettazione. Per ulteriori informazioni, vedere Procedura: eseguire l'associazione a processi esistenti.

  2. Se sono state apportate modifiche alle proprietà del processo prima del recupero delle informazioni sulle proprietà, chiamare il metodo Refresh.

  3. Impostare le proprietà per la lettura delle informazioni appropriate sul processo e assegnare il valore restituito a una variabile.

    Nell'esempio riportato di seguito viene illustrato come aprire un'istanza del Blocco note, quindi viene chiamato il metodo Refresh per aggiornare le proprietà del componente. Il codice legge quindi la proprietà WorkingSet64 aggiornata del componente per restituire la quantità totale di memoria allocata per il processo associato. Il valore aggiornato della proprietà viene quindi scritto in una finestra della console sei volte a intervalli di 2 secondi. La console resta aperta per 5 secondi dopo il completamento della routine.

    Dim Notepad As New Process()
    Dim i As Integer
    Notepad = Process.Start("Notepad.exe")
    For i = 0 To 5
        ' Forces the Process component to get a new set of property values.
        Notepad.Refresh()
        ' Writes the property value to the console screen.
        Console.WriteLine(Notepad.WorkingSet64)
        ' Waits two seconds before running the next loop.
        System.Threading.Thread.Sleep(2000)
    Next
    ' Closes Notepad and waits 5 seconds before closing the console screen.
    Notepad.CloseMainWindow()
    System.Threading.Thread.Sleep(5000)
    
         Process notepad;
            notepad = Process.Start("Notepad");
            for (int i = 0; i < 5; i++)
            {
                // Forces the Process component to get a new set 
                // of property values.
                notepad.Refresh();
                // Writes the property value to the console screen.
                Console.WriteLine(notepad.WorkingSet64.ToString());
                // Waits two seconds before running the next loop.
                System.Threading.Thread.Sleep(2000);
            }
            // Closes Notepad and waits 5 seconds before closing 
            // the console screen.
            notepad.CloseMainWindow();
            System.Threading.Thread.Sleep(5000);
    

Vedere anche

Attività

Procedura: eseguire l'associazione a processi esistenti

Procedura: visualizzare i processi in esecuzione

Concetti

Introduzione al monitoraggio e alla gestione di processi Windows

Altre risorse

Monitoraggio e gestione di processi Windows