Process.Kill () против Process.Start ("taskkill", ...) - PullRequest
19 голосов
/ 31 мая 2011

У меня небольшое приложение-установщик C #, и я хочу завершить процесс.Есть ли какие-либо преимущества / различия в использовании

Process[] procs = Process.GetProcessesByName("[taskname]");
foreach (Process p in procs) { p.Kill(); }

против

Process.Start("taskkill", "/F /IM [taskname].exe");

Я где-то читал, что использование «taskkill» доступно только в XP (и выше), поэтому это может сделать Process.Kill() безопасный вариант?

Ответы [ 2 ]

19 голосов
/ 12 марта 2013

p.kill () не уничтожает дерево процессов.

Так что Taskkill необходим, если вы хотите уничтожить все дерево процессов.

8 голосов
/ 31 мая 2011

Process.Kill предпочтительнее, потому что вы не запускаете другой процесс, как вы это делаете, когда запускаете taskkill, чтобы завершить процесс. Это просто много бесполезных накладных расходов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...