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

我有一个小的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()成为更安全的选项?

Process.Kill是首选,因为当你启动taskkill来杀死进程时,你没有像你那样启动另一个进程。 这只是很多无用的开销。

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

因此,如果要杀死整个进程树,则需要taskkill。