2011-05-31 55 views
16

我有一个小的C#安装程序应用程序,我想杀死一个进程。是否有使用Process.Kill()vs Process.Start(“taskkill”,...)

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

VS

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

我读的地方,使用“TASKKILL”任何优势/差异仅适用于XP(及以上),这样就使Process.Kill()更安全的选择?

回答

6

Process.Kill是首选,因为当您启动taskkill来终止进程时,您并不像启动另一个进程。这只是很多无用的开销。

+11

例如,当您尝试杀死explorer.exe时,Taskkill似乎对杀死进程更可靠。 – Bitterblue 2013-03-22 07:23:39

17

p.kill()不会终止进程树。

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