Process.Kill()vs Process.Start("taskkill",...)

Mar*_*cus 19 c# process

我有一个小的C#安装程序应用程序,我想杀死一个进程.使用中是否有任何优点/差异

Process[] procs = Process.GetProcessesByName("[taskname]");
foreach (Process p in procs) { p.Kill(); }
Run Code Online (Sandbox Code Playgroud)

VS

Process.Start("taskkill", "/F /IM [taskname].exe");
Run Code Online (Sandbox Code Playgroud)

我在某处读到使用"taskkill"只能在XP(和更高版本)中使用,那么这样会Process.Kill()更安全吗?

Ash*_*raf 19

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

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


Dan*_*rth 8

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

  • 例如,当您尝试杀死explorer.exe时,Taskkill在杀死进程时似乎更可靠. (13认同)