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
| Nome | Description |
|---|---|
| Kill() |
Interrompe imediatamente o processo associado. |
| Kill(Boolean) |
Interrompe imediatamente o processo associado e, opcionalmente, seus processos filho/descendente. |
Comentários
O Kill método força um encerramento do processo, enquanto CloseMainWindow solicita apenas uma terminaçã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 principal, 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 a desistência do aplicativo, use o Kill método.
O comportamento é idêntico ao de CloseMainWindow um usuário fechando a janela principal de um aplicativo usando o menu do sistema. Portanto, a solicitação para sair do processo fechando a janela principal 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 verifique 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 dos 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 saído.
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 uma terminação ordenada 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 somente 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
- Origem:
- Process.Unix.cs
- Origem:
- Process.Unix.cs
Interrompe imediatamente o processo associado.
public:
void Kill();
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public void Kill();
public void Kill();
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
public void Kill();
[<System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : unit -> unit
member this.Kill : unit -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : unit -> unit
Public Sub Kill ()
- Atributos
Exceções
O processo associado não pôde ser encerrado.
Você está tentando chamar Kill() um processo em execução em um computador remoto. O método está disponível apenas para processos em execução no computador local.
Não há nenhum processo associado a esse Process objeto.
Confira também
Aplica-se a
Kill(Boolean)
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
- Origem:
- Process.NonUap.cs
Interrompe imediatamente o processo associado e, opcionalmente, seus processos filho/descendente.
public:
void Kill(bool entireProcessTree);
[System.Runtime.Versioning.SupportedOSPlatform("maccatalyst")]
[System.Runtime.Versioning.UnsupportedOSPlatform("ios")]
[System.Runtime.Versioning.UnsupportedOSPlatform("tvos")]
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.SupportedOSPlatform("maccatalyst")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : bool -> unit
member this.Kill : bool -> unit
[<System.Runtime.Versioning.UnsupportedOSPlatform("ios")>]
[<System.Runtime.Versioning.UnsupportedOSPlatform("tvos")>]
member this.Kill : bool -> unit
Public Sub Kill (entireProcessTree As Boolean)
Parâmetros
- entireProcessTree
- Boolean
true para eliminar o processo associado e seus descendentes; false para eliminar somente o processo associado.
- Atributos
Exceções
Você está tentando chamar Kill() um processo em execução em um computador remoto. O método está disponível apenas para processos em execução no computador local.
Somente .NET Framework e .NET Core 3.0 e versões anteriores: o processo já foi encerrado.
- ou -
Não há nenhum processo associado a esse Process objeto.
- 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 está 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.