Process.Kill Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Força o encerramento do processo subjacente.
Sobrecargas
Kill() |
Interrompe imediatamente o processo associado. |
Kill(Boolean) |
Interrompe imediatamente o processo associado e, opcionalmente, seus processos filho/descendentes. |
Comentários
O Kill
método força um encerramento do processo, enquanto CloseMainWindow solicita apenas uma rescisão.
Quando um processo com uma interface gráfica está sendo executado, seu loop de mensagem está em um estado de espera.
O loop de mensagem é executado sempre que uma mensagem do Windows é enviada ao processo pelo sistema operacional.
A chamada CloseMainWindow envia uma solicitação para fechar a janela main, que, em um aplicativo bem formado, fecha janelas filho e revoga todos os loops de mensagem em execução para o aplicativo.
A solicitação para sair do processo chamando CloseMainWindow não força o aplicativo a sair.
O aplicativo pode solicitar a verificação do usuário antes de sair ou pode se recusar a sair.
Para forçar o aplicativo a sair, use o Kill
método .
O comportamento de é idêntico ao de CloseMainWindow um usuário fechando a janela main de um aplicativo usando o menu do sistema. Portanto, a solicitação para sair do processo fechando a janela main não força o aplicativo a sair imediatamente.
Observação
O Kill método é executado de forma assíncrona.
Depois de chamar o Kill
método , chame o WaitForExit método para aguardar a saída do processo ou marcar a HasExited propriedade para determinar se o processo foi encerrado.
Observação
O WaitForExit método e a HasExited propriedade não refletem o status de processos descendentes.
Quando Kill(entireProcessTree: true)
for usado e WaitForExitHasExited indicará que a saída foi concluída após a saída do processo determinado, mesmo que todos os descendentes ainda não tenham sido encerrados.
Os dados editados pelo processo ou recursos alocados para o processo podem ser perdidos se você chamar Kill
.
Kill
causa uma terminação de processo anormal e deve ser usada somente quando necessário.
CloseMainWindow permite um encerramento ordenado do processo e fecha todas as janelas, portanto, é preferível para aplicativos com uma interface.
Se CloseMainWindow falhar, você poderá usar Kill
para encerrar o processo.
Kill
é a única maneira de encerrar processos que não têm interfaces gráficas.
Você pode chamar Kill
e CloseMainWindow apenas para processos que estão em execução no computador local.
Não é possível fazer com que os processos em computadores remotos sejam encerrados. Você só pode exibir informações para processos em execução em computadores remotos.
Kill()
- Origem:
- Process.Unix.cs
- Origem:
- Process.Unix.cs
- Origem:
- Process.Unix.cs
Interrompe imediatamente o processo associado.
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
Exceções
Não foi possível terminar o processo associado.
Você está tentando chamar Kill() para um processo em execução em um computador remoto. Esse método está disponível somente para processos em execução no computador local.
Não há processos associados a esse objeto Process.
Confira também
Aplica-se a
Kill(Boolean)
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
Interrompe imediatamente o processo associado e, opcionalmente, seus processos filho/descendentes.
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 encerrar o processo associado e seus descendentes; false
para encerrar apenas o processo associado.
- Atributos
Exceções
Não foi possível terminar o processo associado.
- ou -
O processo está sendo encerrado.
Você está tentando chamar Kill() para um processo em execução em um computador remoto. Esse método está disponível somente para processos em execução no computador local.
.NET Framework e .NET Core 3.0 e somente versões anteriores: o processo já foi encerrado.
- ou -
Não há processos associados a esse objeto Process.
- ou -
O processo de chamada é um membro da árvore descendente do processo associado.
Nem todos os processos na árvore descendente do processo associado podem ser encerrados.
Comentários
Quando entireProcessTree
é definido como true
, os processos em que a chamada não tem permissões para exibir detalhes são silenciosamente ignorados pelo processo de encerramento descendente porque o processo de encerramento não consegue determinar se esses processos são descendentes.