Process.Kill()vs Process.Start(“taskkill”,...)

时间:2011-05-31 15:24:36

标签: c# process

我有一个小的C#安装程序应用程序,我想杀死一个进程。使用

是否有任何优势/差异
Process[] procs = Process.GetProcessesByName("[taskname]");
foreach (Process p in procs) { p.Kill(); }

VS

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

我在某处读过使用“taskkill”只能在XP(和更高版本)中使用,那么这会使Process.Kill()成为更安全的选项吗?

2 个答案:

答案 0 :(得分:19)

p.kill()不会杀死进程树。

如果你想杀死整个过程树,那么就需要taskkill。

答案 1 :(得分:8)

Process.Kill是首选,因为当您启动taskkill以终止进程时,您没有像开始那样启动另一个进程。这只是很多无用的开销。