Udostępnij za pośrednictwem


Process.Kill Metoda

Definicja

Wymusza zakończenie podstawowego procesu.

Przeciążenia

Kill()

Natychmiast zatrzymuje skojarzony proces.

Kill(Boolean)

Natychmiast zatrzymuje skojarzony proces i opcjonalnie jego podrzędne/malejąco procesy.

Uwagi

Metoda Kill wymusza zakończenie procesu, podczas gdy CloseMainWindow żąda tylko zakończenia. Gdy proces z interfejsem graficznym jest wykonywany, jego pętla komunikatów jest w stanie oczekiwania. Pętla komunikatów jest wykonywana za każdym razem, gdy komunikat systemu Windows jest wysyłany do procesu przez system operacyjny. Wywołanie CloseMainWindow wysyła żądanie zamknięcia okna głównego, które w dobrze sformułowanej aplikacji zamyka okna podrzędne i odwołuje wszystkie uruchomione pętle komunikatów dla aplikacji. Żądanie zakończenia procesu przez wywołanie CloseMainWindow metody nie wymusza zamknięcia aplikacji. Aplikacja może poprosić o weryfikację użytkownika przed zamknięciem lub odmówić jej zamknięcia. Aby wymusić zamknięcie aplikacji, użyj Kill metody .

Zachowanie jest identyczne z zachowaniem CloseMainWindow użytkownika zamykającego główne okno aplikacji przy użyciu menu systemowego. W związku z tym żądanie zakończenia procesu przez zamknięcie okna głównego nie wymusza natychmiastowego zamknięcia aplikacji.

Uwaga

Metoda Kill jest wykonywana asynchronicznie. Po wywołaniu Kill metody wywołaj WaitForExit metodę , aby poczekać na zakończenie procesu, lub sprawdź HasExited właściwość , aby określić, czy proces zakończył się.

Uwaga

Metoda WaitForExit i HasExited właściwość nie odzwierciedlają stanu procesów potomnych. Gdy Kill(entireProcessTree: true) jest używany, WaitForExit i HasExited wskaże, że zakończenie zostało zakończone po zakończeniu danego procesu, nawet jeśli wszystkie elementy podrzędne nie zostały jeszcze zakończone.

Dane edytowane przez proces lub zasoby przydzielone do tego procesu mogą zostać utracone, jeśli wywołasz metodę Kill. Kill powoduje nieprawidłowe zakończenie procesu i należy go używać tylko wtedy, gdy jest to konieczne. CloseMainWindow umożliwia uporządkowane zakończenie procesu i zamyka wszystkie okna, dlatego zaleca się, aby aplikacje z interfejsem. Jeśli CloseMainWindow proces zakończy się niepowodzeniem, możesz użyć Kill polecenia , aby zakończyć proces. Kill jest jedynym sposobem na zakończenie procesów, które nie mają interfejsów graficznych.

Można wywoływać Kill metody i CloseMainWindow tylko dla procesów uruchomionych na komputerze lokalnym. Nie można spowodować zakończenia procesów na komputerach zdalnych. Można wyświetlać tylko informacje dotyczące procesów uruchomionych na komputerach zdalnych.

Kill()

Źródło:
Process.Unix.cs
Źródło:
Process.Unix.cs
Źródło:
Process.Unix.cs

Natychmiast zatrzymuje skojarzony proces.

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

Wyjątki

Nie można zakończyć skojarzonego procesu.

Próbujesz wywołać Kill() proces uruchomiony na komputerze zdalnym. Metoda jest dostępna tylko dla procesów uruchomionych na komputerze lokalnym.

Brak procesu skojarzonego z tym Process obiektem.

Zobacz też

Dotyczy

Kill(Boolean)

Źródło:
Process.NonUap.cs
Źródło:
Process.NonUap.cs
Źródło:
Process.NonUap.cs

Natychmiast zatrzymuje skojarzony proces i opcjonalnie jego podrzędne/malejąco procesy.

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)

Parametry

entireProcessTree
Boolean

true zabicie skojarzonego procesu i jego elementów potomnych; false aby zabić tylko skojarzony proces.

Atrybuty

Wyjątki

Nie można zakończyć skojarzonego procesu.

-lub-

Proces kończy się.

Próbujesz wywołać Kill() proces uruchomiony na komputerze zdalnym. Metoda jest dostępna tylko dla procesów uruchomionych na komputerze lokalnym.

.NET Framework i .NET Core 3.0 i starsze wersje tylko: proces został już zakończony.

-lub-

Brak procesu skojarzonego z tym Process obiektem.

-lub-

Proces wywołujący jest elementem członkowskim drzewa podrzędnego skojarzonego procesu.

Nie wszystkie procesy w drzewie potomnych skojarzonego procesu mogą zostać zakończone.

Uwagi

Gdy entireProcessTree jest ustawiona wartość true, procesy, w których wywołanie nie ma uprawnień do wyświetlania szczegółów, są dyskretnie pomijane przez proces kończenia potomności, ponieważ proces zakończenia nie może określić, czy te procesy są elementami podrzędnymi.

Zobacz też

Dotyczy