Process.Kill Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Принудительное завершение базового процесса.
Перегрузки
| Имя | Описание |
|---|---|
| Kill() |
Немедленно останавливает связанный процесс. |
| Kill(Boolean) |
Немедленно останавливает связанный процесс и при необходимости его дочерние или потомки. |
Комментарии
Метод Kill заставляет завершение процесса, а CloseMainWindow только запрашивает завершение.
При выполнении процесса с графическим интерфейсом его цикл сообщений находится в состоянии ожидания.
Цикл сообщений выполняется каждый раз, когда сообщение Windows отправляется в процесс операционной системой.
Вызов CloseMainWindow отправляет запрос на закрытие главного окна, которое в хорошо сформированном приложении закрывает дочерние окна и отменяет все выполняемые циклы сообщений для приложения.
Запрос на выход из процесса путем вызова CloseMainWindow не принудительно завершает работу приложения.
Приложение может запросить проверку подлинности пользователя перед выходом или отказаться от выхода.
Чтобы принудительно завершить работу приложения, используйте Kill метод.
Поведение идентично поведению CloseMainWindow пользователя, закрывающего главное окно приложения с помощью системного меню. Таким образом, запрос на выход из процесса путем закрытия главного окна не принудительно завершает работу приложения немедленно.
Замечание
Метод Kill выполняется асинхронно.
После вызова метода вызовите KillWaitForExit метод, чтобы дождаться завершения процесса или проверить HasExited свойство, чтобы определить, завершился ли процесс.
Замечание
Метод WaitForExit и HasExited свойство не отражают состояние потомков.
Когда Kill(entireProcessTree: true) используется, и HasExited будет указывать, что выход завершился после завершения заданного процесса, WaitForExit даже если все потомки еще не вышли.
Данные, редактируемые процессом или ресурсами, выделенными для процесса, могут быть потеряны при вызове Kill.
Kill вызывает ненормальное завершение процесса и должно использоваться только при необходимости.
CloseMainWindow включает упорядоченное завершение процесса и закрывает все окна, поэтому предпочтительнее для приложений с интерфейсом.
При CloseMainWindow сбое можно использовать Kill для завершения процесса.
Kill — единственный способ завершения процессов, которые не имеют графических интерфейсов.
Можно вызывать Kill и CloseMainWindow только для процессов, выполняемых на локальном компьютере.
Вы не можете привести к выходу процессов на удаленных компьютерах. Вы можете просматривать только сведения о процессах, выполняемых на удаленных компьютерах.
Kill()
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
- Исходный код:
- Process.Unix.cs
Немедленно останавливает связанный процесс.
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 ()
- Атрибуты
Исключения
Не удалось завершить связанный процесс.
Вы пытаетесь вызвать Kill() процесс, выполняющийся на удаленном компьютере. Этот метод доступен только для процессов, выполняемых на локальном компьютере.
Процесс не связан с этим Process объектом.
См. также раздел
Применяется к
Kill(Boolean)
- Исходный код:
- Process.NonUap.cs
- Исходный код:
- Process.NonUap.cs
- Исходный код:
- Process.NonUap.cs
- Исходный код:
- Process.NonUap.cs
- Исходный код:
- Process.NonUap.cs
Немедленно останавливает связанный процесс и при необходимости его дочерние или потомки.
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)
Параметры
- entireProcessTree
- Boolean
true для убийства связанного процесса и его потомков; false , чтобы убить только связанный процесс.
- Атрибуты
Исключения
Вы пытаетесь вызвать Kill() процесс, выполняющийся на удаленном компьютере. Этот метод доступен только для процессов, выполняемых на локальном компьютере.
Только .NET Framework и .NET Core 3.0 и более ранних версий: процесс уже завершился.
–или–
Процесс не связан с этим Process объектом.
–или–
Вызывающий процесс является членом потомка связанного процесса.
Не все процессы в потомке связанного процесса могут быть завершены.
Комментарии
Если entireProcessTree задано значение true, процессы, в которых вызов не имеет разрешений для просмотра сведений, пропускаются процессом завершения потомков, так как процесс завершения не может определить, являются ли эти процессы потомками.