Cómo: Actualizar las propiedades de un componente Process
Actualización: noviembre 2007
Las propiedades de un componente Process se almacenan en una caché. Las propiedades se utilizan para almacenar los valores de las propiedades del proceso al que está enlazado el componente.
Las propiedades no se llenan hasta que se hace desde el proceso la primera solicitud de propiedad. En ese momento, el componente llena sus propiedades de la caché con los valores de las propiedades del proceso al que está enlazado. El componente no renueva esta información cuando se realizan solicitudes posteriores de valores de propiedad.
Para ver los valores actuales de las propiedades, deberá llamar al método Refresh del componente Process antes de solicitar valores de propiedades del proceso. Cuando se llama al método Refresh, los valores de las propiedades del componente se reemplazan por los datos actuales de las propiedades del proceso de destino.
Para actualizar las propiedades de un componente Process
Cree una instancia del proceso mediante programación o mediante la adición de un componente Process al proyecto en la vista de diseño. Para obtener más información, vea Cómo: Enlazar con procesos existentes.
Si se produjeron cambios en las propiedades del proceso antes de recuperar la información sobre las propiedades, llame al método Refresh.
Establezca propiedades que lean la información adecuada del proceso y asignen el valor devuelto a una variable.
El ejemplo siguiente muestra cómo se abre una instancia de Bloc de notas y se llama a continuación al método Refresh para actualizar las propiedades del componente. El código lee entonces la propiedad WorkingSet64 actualizada del componente para devolver la cantidad total de memoria asignada al proceso asociado. El valor de propiedad actualizado se escribe a continuación seis veces en una pantalla de consola con intervalos de 2 segundos. La consola permanece abierta durante cinco segundos después de que finalice el procedimiento.
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);
Vea también
Tareas
Cómo: Enlazar con procesos existentes
Cómo: Ver los procesos en ejecución
Conceptos
Introducción a la supervisión y administración de procesos de Windows