2011-05-31 70 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。