Process.Kill Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
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.