Teilen über


Process.Kill Methode

Definition

Erzwingt das Beenden des zugrunde liegenden Prozesses.

Überlädt

Kill()

Hält den zugeordneten Prozess sofort an.

Kill(Boolean)

Beendet sofort den zugeordneten Prozess und optional seine untergeordneten Prozesse/Nachfolgerprozesse.

Hinweise

Die Kill -Methode erzwingt eine Beendigung des Prozesses, während CloseMainWindow nur eine Beendigung angefordert wird. Wenn ein Prozess mit einer grafischen Benutzeroberfläche ausgeführt wird, befindet sich seine Nachrichtenschleife in einem Wartezustand. Die Nachrichtenschleife wird jedes Mal ausgeführt, wenn eine Windows-Nachricht vom Betriebssystem an den Prozess gesendet wird. Der Aufruf CloseMainWindow sendet eine Anforderung zum Schließen des Standard-Fensters, das in einer wohlgeformten Anwendung untergeordnete Fenster schließt und alle ausgeführten Nachrichtenschleifen für die Anwendung widerruft. Die Anforderung, den Prozess durch Aufrufen CloseMainWindow zu beenden, erzwingt nicht das Beenden der Anwendung. Die Anwendung kann eine Benutzerüberprüfung anfordern, bevor sie beendet wird, oder sie kann das Beenden ablehnen. Verwenden Sie die -Methode, um das Beenden der Anwendung zu erzwingen Kill .

Das Verhalten von CloseMainWindow ist identisch mit dem Verhalten eines Benutzers, der das Standard Fenster einer Anwendung über das Systemmenü schließt. Daher erzwingt die Anforderung, den Prozess durch Schließen des Standard-Fensters zu beenden, nicht, dass die Anwendung sofort beendet wird.

Hinweis

Die Kill -Methode wird asynchron ausgeführt. Rufen Sie nach dem Aufrufen der Kill -Methode die WaitForExit -Methode auf, um auf das Beenden des Prozesses zu warten, oder überprüfen Sie die HasExited -Eigenschaft, um festzustellen, ob der Prozess beendet wurde.

Hinweis

Die WaitForExit -Methode und die HasExited -Eigenschaft spiegeln nicht die status von Nachfolgerprozessen wider. Wenn Kill(entireProcessTree: true) verwendet wird, gibt HasExited an, WaitForExit dass das Beenden nach dem Beenden des angegebenen Prozesses abgeschlossen wurde, auch wenn noch nicht alle Nachfolger beendet wurden.

Daten, die vom Prozess bearbeitet werden, oder ressourcen, die dem Prozess zugeordnet sind, können verloren gehen, wenn Sie aufrufen Kill. Kill verursacht einen ungewöhnlichen Prozessabbruch und sollte nur bei Bedarf verwendet werden. CloseMainWindow ermöglicht eine geordnete Beendigung des Prozesses und schließt alle Fenster, sodass dies für Anwendungen mit einer Schnittstelle vorzuziehen ist. Wenn CloseMainWindow ein Fehler auftritt, können Kill Sie verwenden, um den Prozess zu beenden. Kill ist die einzige Möglichkeit, Prozesse ohne grafische Schnittstellen zu beenden.

Rufen Sie Kill und CloseMainWindow nur für Prozesse, die auf dem lokalen Computer ausgeführt werden. Sie können nicht bewirken, dass Prozesse auf Remotecomputern beendet werden. Sie können nur Informationen zu Prozessen anzeigen, die auf Remotecomputern ausgeführt werden.

Kill()

Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs
Quelle:
Process.Unix.cs

Hält den zugeordneten Prozess sofort an.

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 ()
Attribute

Ausnahmen

Der zugeordnete Prozess konnte nicht beendet werden.

Sie versuchen, Kill() für einen Prozess aufzurufen, der auf einem Remotecomputer ausgeführt wird. Die Methode ist nur für Prozesse verfügbar, die auf dem lokalen Computer ausgeführt werden.

Diesem Process-Objekt ist kein Prozess zugeordnet.

Weitere Informationen

Gilt für:

Kill(Boolean)

Quelle:
Process.NonUap.cs
Quelle:
Process.NonUap.cs
Quelle:
Process.NonUap.cs

Beendet sofort den zugeordneten Prozess und optional seine untergeordneten Prozesse/Nachfolgerprozesse.

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)

Parameter

entireProcessTree
Boolean

true, um den zugeordneten Prozess und seine Nachfolger zu beenden; false, um nur den zugeordneten Prozess zu beenden.

Attribute

Ausnahmen

Der zugeordnete Prozess konnte nicht beendet werden.

- oder -

Der Prozess wird beendet.

Sie versuchen, Kill() für einen Prozess aufzurufen, der auf einem Remotecomputer ausgeführt wird. Die Methode ist nur für Prozesse verfügbar, die auf dem lokalen Computer ausgeführt werden.

nur .NET Framework und .NET Core 3.0 und früheren Versionen: Der Prozess wurde bereits beendet.

- oder -

Diesem Process -Objekt ist kein Prozess zugeordnet.

- oder -

Der aufrufende Prozess ist ein Element der Nachfolgerstruktur des zugeordneten Prozesses.

Nicht alle Prozesse in der Nachfolgerstruktur des zugeordneten Prozesses konnten beendet werden.

Hinweise

Wenn entireProcessTree auf truefestgelegt ist, werden Prozesse, bei denen der Aufruf keine Berechtigungen zum Anzeigen von Details aufweist, automatisch vom absteigenden Beendigungsprozess übersprungen, da der Beendigungsprozess nicht bestimmen kann, ob es sich bei diesen Prozessen um Nachfolger handelt.

Weitere Informationen

Gilt für: