Process.Kill 方法

定义

强制终止基础进程。

重载

Kill()

立即停止关联的进程。

Kill(Boolean)

立即停止关联的进程,并可选择停止其子/后代进程。

注解

方法 Kill 强制终止进程,而 CloseMainWindow 仅请求终止。 当具有图形界面的进程正在执行时,其消息循环处于等待状态。 每当操作系统将 Windows 消息发送到进程时,都会执行消息循环。 调用 CloseMainWindow 发送关闭main窗口的请求,该窗口在格式正确的应用程序中关闭子窗口并撤销应用程序的所有正在运行的消息循环。 通过调用 CloseMainWindow 退出进程的请求不会强制应用程序退出。 应用程序可以在退出前要求用户验证,也可以拒绝退出。 若要强制退出应用程序,请使用 Kill 方法。

的行为与使用系统菜单关闭应用程序的main窗口的用户的行为CloseMainWindow相同。 因此,通过关闭main窗口退出进程的请求不会强制应用程序立即退出。

注意

方法 Kill 异步执行。 调用 Kill 方法后,调用 WaitForExit 方法以等待进程退出,或检查 HasExited 属性来确定进程是否已退出。

注意

方法和 WaitForExitHasExited 属性不反映后代进程的状态。 使用 时 Kill(entireProcessTree: true)WaitForExitHasExited 将指示在给定进程退出后退出已完成,即使所有后代尚未退出也是如此。

如果调用 Kill,则进程编辑的数据或分配给进程的资源可能会丢失。 Kill 导致异常进程终止,仅在必要时才应使用。 CloseMainWindow 允许有条不紊地终止进程并关闭所有窗口,因此最好是具有接口的应用程序。 如果 CloseMainWindow 失败,可以使用 Kill 终止进程。 Kill 是终止没有图形界面的进程的唯一方法。

只能为在本地计算机上运行的进程调用 KillCloseMainWindow 。 不能导致远程计算机上的进程退出。 只能查看远程计算机上运行的进程的信息。

Kill()

Source:
Process.Unix.cs
Source:
Process.Unix.cs
Source:
Process.Unix.cs

立即停止关联的进程。

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 ()
属性

例外

无法终止相关联的进程。

你正尝试为远程计算机上运行的进程调用 Kill()。 该方法仅对本地计算机上运行的进程可用。

没有与此 Process 对象关联的进程。

另请参阅

适用于

Kill(Boolean)

Source:
Process.NonUap.cs
Source:
Process.NonUap.cs
Source:
Process.NonUap.cs

立即停止关联的进程,并可选择停止其子/后代进程。

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)

参数

entireProcessTree
Boolean

true 终止相关联进程及其后代;false 仅终止相关联进程。

属性

例外

无法终止相关联的进程。

进程将终止。

你正尝试为远程计算机上运行的进程调用 Kill()。 该方法仅对本地计算机上运行的进程可用。

仅.NET Framework和 .NET Core 3.0 及更早版本:进程已退出。

没有与此 Process 对象关联的进程。

调用进程是关联进程的后代树的成员。

并非关联进程的后代树中的所有进程都可以终止。

注解

当 设置为 trueentireProcessTree,如果调用缺少查看详细信息的权限,则子代终止进程会以无提示方式跳过这些进程,因为终止进程无法确定这些进程是否是后代。

另请参阅

适用于