Process.Kill Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 los 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()
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
- Source:
- Process.Unix.cs
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)
- Source:
- Process.NonUap.cs
- Source:
- Process.NonUap.cs
- Source:
- Process.NonUap.cs
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
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 true
en , 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.