Process.Kill Método

Definición

Se fuerza la finalización del proceso subyacente.

Sobrecargas

Kill()

Detiene inmediatamente el proceso asociado.

Kill(Boolean)

Detiene inmediatamente el proceso asociado y, opcionalmente, sus procesos secundarios o descendientes.

Comentarios

El Kill método fuerza una finalización del proceso, mientras que CloseMainWindow solo solicita una finalización. Cuando se ejecuta un proceso con una interfaz gráfica, su bucle de mensajes se encuentra en un estado de espera. El bucle de mensajes se ejecuta cada vez que el sistema operativo envía un mensaje de Windows al proceso. La llamada CloseMainWindow a envía una solicitud para cerrar la ventana principal, que, en una aplicación bien formada, cierra las ventanas secundarias y revoca todos los bucles de mensajes en ejecución para la aplicación. La solicitud para salir del proceso llamando CloseMainWindow a no obliga a la aplicación a salir. La aplicación puede solicitar la comprobación del usuario antes de salir o rechazarlo. Para forzar la salida de la aplicación, use el Kill método .

El comportamiento de es idéntico al de CloseMainWindow un usuario que cierra la ventana principal de una aplicación mediante el menú del sistema. Por lo tanto, la solicitud para salir del proceso cerrando la ventana principal no obliga a la aplicación a salir inmediatamente.

Nota

El Kill método se ejecuta de forma asincrónica. Después de llamar al Kill método , llame WaitForExit al método para esperar a que el proceso salga o compruebe la HasExited propiedad para determinar si el proceso ha salido.

Nota

El WaitForExit método y la HasExited propiedad no reflejan el estado de los procesos descendientes. Cuando Kill(entireProcessTree: true) se usa WaitForExit y HasExited indicará que la salida se ha completado después de que se cierre el proceso especificado, incluso si aún no se han salido todos los descendientes.

Los datos editados por el proceso o los recursos asignados al proceso se pueden perder si llama a Kill. Kill provoca una terminación de proceso anómala y solo se debe usar cuando sea necesario. CloseMainWindow habilita una terminación ordenada del proceso y cierra todas las ventanas, por lo que es preferible para las aplicaciones con una interfaz. Si CloseMainWindow se produce un error, puede usar Kill para finalizar el proceso. Kill es la única manera de finalizar procesos que no tienen interfaces gráficas.

Puede llamar Kill a y CloseMainWindow solo para los procesos que se ejecutan en el equipo local. No puede hacer que los procesos de los equipos remotos salgan. Solo puede ver información de los procesos que se ejecutan en equipos remotos.

Kill()

Detiene inmediatamente el proceso asociado.

public:
 void Kill();
public void Kill ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public void Kill ();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public void Kill ();
member this.Kill : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Kill : unit -> unit
Public Sub Kill ()
Atributos

Excepciones

No se pudo terminar el proceso asociado.

Está intentando llamar a Kill() para un proceso que se ejecuta en un equipo remoto. El método está disponible solo para los procesos que se ejecutan en el equipo local.

No hay ningún proceso asociado a este objeto Process .

Consulte también

Se aplica a

Kill(Boolean)

Detiene inmediatamente el proceso asociado y, opcionalmente, sus procesos secundarios o descendientes.

public:
 void Kill(bool entireProcessTree);
public void Kill (bool entireProcessTree);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public void Kill (bool entireProcessTree);
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
public void Kill (bool entireProcessTree);
member this.Kill : bool -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : bool -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
member this.Kill : bool -> unit
Public Sub Kill (entireProcessTree As Boolean)

Parámetros

entireProcessTree
Boolean

true para terminar el proceso asociado y sus descendientes; false para terminar solo el proceso asociado.

Atributos

Excepciones

No se pudo terminar el proceso asociado.

o bien

El proceso está finalizando.

Está intentando llamar a Kill() para un proceso que se ejecuta en un equipo remoto. El método está disponible solo para los procesos que se ejecutan en el equipo local.

.NET Framework y .NET Core 3.0 y versiones anteriores solo: el proceso ya se ha cerrado.

o bien

No hay ningún proceso asociado a este objeto Process .

o bien

El proceso de llamada es un miembro del árbol descendiente del proceso asociado.

No todos los procesos del árbol descendiente del proceso asociado podrían terminarse.

Comentarios

Cuando entireProcessTree se establece trueen , los procesos en los que la llamada carece de permisos para ver los detalles se omiten silenciosamente mediante el proceso de terminación descendiente porque el proceso de finalización no puede determinar si esos procesos son descendientes.

Consulte también

Se aplica a