2011-05-31 21 views
16

Tengo una pequeña aplicación de instalación de C# y deseo matar un proceso. ¿Hay ventajas/diferencias en el uso deProcess.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"); 

leí en alguna parte que el uso de "taskkill" sólo está disponible en XP (o más), por lo que tendrían que hacer Process.Kill() la opción más segura?

Respuesta

6

Process.Kill es preferible, porque no está iniciando otro proceso como lo hace, cuando inicie taskkill para matar el proceso. Es solo una sobrecarga inútil.

+11

Taskkill parece ser más confiable para matar procesos cuando intenta matar a explorer.exe por ejemplo. – Bitterblue

17

p.kill() no mata el árbol de procesos.

Por lo tanto, se necesita Taskkill si desea eliminar todo el árbol de procesos.

Cuestiones relacionadas