introduccion a la clase process
TRANSCRIPT
INTRODUCCION A LA CLASE PROCESS
Cada aplicación NET FRAMEWORK ejecuta como un proceso. Los procesadores de computador ejecutan hilos, no procesos. El hilo principal de ejecución es el hilo primario y un proceso puede tener múltiples y
adicionales hilos.
Nombre Descripción
ExitCode Obtiene el valor especificado por el proceso asociado al terminar.
ExitTime Obtiene el momento en el que terminó el proceso asociado.
Id Obtiene el identificador único del proceso asociado.
MachineName Obtiene el nombre del equipo en el que se está ejecutando el proceso asociado.
Modules Obtiene los módulos cargados por el proceso asociado.
PriorityClass Obtiene o establece la categoría de prioridad general del proceso asociado.
ProcessName Obtiene el nombre del proceso.
StartTime Obtiene el momento en el que se inició el proceso asociado.
Threads Obtiene el conjunto de subprocesos que se están ejecutando en el proceso asociado.
TotalProcessorTime Obtiene el tiempo de procesador total de este proceso.
UserProcessorTime Obtiene el tiempo de procesador de usuario de este proceso.
VirtualMemorySize Obtiene el tamaño de la memoria virtual del proceso.
VirtualMemorySize64
Obtiene el tamaño de la memoria virtual que se ha asignado para el proceso asociado.
Nombre Descripción
Close Libera todos los recursos asociados a este componente.
CloseMainWindow Cierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal.
GetCurrentProcess Obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento.
GetProcessById Sobrecargado. Crea un nuevo componente Process y lo asocia al recurso de proceso existente que se especifique.
GetProcesses Sobrecargado. Crea una matriz de nuevos componentes Process y los asocia a recursos de proceso existentes.
GetProcessesByName
Sobrecargado. Crea una matriz de nuevos componentes Process y los asocia a los recursos de proceso existentes que comparten el nombre del proceso especificado.
Kill Detiene inmediatamente el proceso asociado.
Refresh Descarta cualquier información acerca del proceso asociado que se haya almacenado en caché en el componente del proceso.
Start Sobrecargado. Inicia un recurso de proceso y lo asocia a un componente Process.
RECIBIENDO INFORMACION DE LOS PROCESOS
El método GetProcesses, devuelve los nombres de los procesos actuales.
Dim processesList As Process() = Process.GetProcesses()For Each p As Process In processesListprocessesListBox.Items.Add(p.ProcessName)Next
Recibiendo información del proceso actual
El método GetCurrentProcess, obtiene un nuevo componente Process y lo asocia al proceso que está activo en ese momento. Se utiliza la propiedad ProcessName y Threads para mostrar información acerca del proceso.
Dim currentProcess As Process = Process.GetCurrentProcess()currentProcessLabel.Text = currentProcess.ProcessName
RECIBIENDO INFORMACION DEL MODULO
- Se pueden utilizar las propiedades MODULES para recibir información acerca de las DLLs o EXE que están siendo cargadas en un proceso.
Las Propiedades Modules- Representan a las EXEs o DLLs que intervienen en una aplicación.- Permiten obtener información acerca de los modulos cargados en un proceso, como
las que se obtienen con las propiedades FILENAME y FILEVERSIONINFO, asi como también el nombre del modulo, nombre del archivo y tamaño.
Dim currentProcess As Process = Process.GetCurrentProcess()Dim processModuleCollection As ProcessModuleCollection _= currentProcess.ModulesFor Each p As ProcessModule In processModuleCollectionprocessesListBox.Items.Add(p.FileName)NextmainModuleLabel.Text = currentProcess.MainModule.ModuleName
INICIANDO Y DETENIENDO UN PROCESO
La Clase PROCESS provee el método START que permite iniciar un proceso, y de la misma manera habilita los métodos CLOSEMAINWINDOW y KILL para detenerlo.
Nombre Descripción
Process.Start () Inicia (o reutiliza) el recurso de proceso especificado en la propiedad StartInfo de este componente Process y lo asocia al componente.Compatible con .NET Compact Framework.
Process.Start Inicia el recurso de proceso que se especifica mediante el
(ProcessStartInfo) parámetro que contiene la información de inicio del proceso (por ejemplo, el nombre de archivo del proceso que se va a iniciar) y asocia el recurso a un nuevo componente Process.Compatible con .NET Compact Framework.
Process.Start (String) Inicia un recurso de proceso con la especificación del nombre de un documento o de un archivo de aplicación y asocia el recurso a un nuevo componente Process.
Process.Start (String, String)
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, y asocia el recurso a un nuevo componente Process.Compatible con .NET Compact Framework.
Process.Start (String, String, SecureString, String)
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.
Process.Start (String, String, String, SecureString, String)
Inicia un recurso de proceso mediante la especificación del nombre de una aplicación y un conjunto de argumentos de línea de comandos, un nombre de usuario, una contraseña y un dominio, y asocia el recurso a un nuevo componente de Process.
Process.Start("calc")Process.Start("E:\MyFile.doc")
Dim info As New ProcessStartInfo("notepad")info.WindowStyle = ProcessWindowStyle.Normalinfo.Arguments = "C:\Files\TextFile.txt"Process.Start(info)
Deteniendo un proceso
CloseMainWindowCierra un proceso que contiene una interfaz de usuario mediante el envío de un mensaje de cierre a su ventana principal.
KillDetiene inmediatamente el proceso asociado. Lo fuerza.
Kill obliga a que el proceso termine, mientras que CloseMainWindow sólo solicita la terminación. Cuando se está ejecutando un proceso con interfaz gráfica, el bucle de mensajes se encuentra en estado de espera. El bucle de mensajes se ejecuta cada vez que el sistema operativo envía un mensaje de Windows al proceso. Cuando se llama a CloseMainWindow, se envía una solicitud para cerrar a la ventana principal que, en una aplicación con formato correcto, cierra las ventanas secundarias y revoca todos los bucles de mensajes en ejecución de la aplicación. Una solicitud de cierre del proceso mediante una llamada a CloseMainWindow no obliga a la aplicación a cerrarse. La aplicación puede pedir la confirmación del usuario antes de finalizar, o evitar su finalización. Para hacer que la aplicación se cierre, hay que utilizar el método Kill. El comportamiento de CloseMainWindow es igual al que se observa cuando el usuario cierra la ventana principal de una aplicación a través del menú del sistema. Por tanto, el hecho de solicitar la salida del proceso cerrando la ventana principal no obliga a la aplicación a salir inmediatamente.
El método Kill se ejecuta de forma asincrónica. Después de llamar al método Kill, llame
al método WaitForExit para esperar a que el proceso termine o compruebe la propiedad
HasExited para determinar si ha finalizado el proceso.
LECCION 2: ADMINISTRANDO LA PERFORMANCE DE UNA APLICACION