¿Cómo matar un proceso de C #?

Estoy creando un progtwig de C # que descomprime un archivo y trabajo en este archivo.

A veces recibo este mensaje: “el proceso no puede acceder al archivo c: …. porque está siendo usado por otro proceso”

¿Que puedo hacer? ¿Cómo matarlo?

Tienes que averiguar qué progtwig está accediendo al archivo. ¿Ha olvidado salir de una de sus propias aplicaciones o hay alguna otra que acceda al archivo?

Puede escribir código C # para finalizar un proceso, pero un mejor enfoque sería averiguar por qué otro proceso ya lo está utilizando.

Para eliminar todos los procesos con el nombre nameOfProcess en C #:

Process[] ps = Process.GetProcessesByName("nameOfProcess"); foreach (Process p in ps) p.Kill(); 

Además, como observa @Darin, puedes echar un vistazo a este otro hilo SO: ¿Cómo averiguo qué proceso está bloqueando un archivo usando .NET?

Las herramientas de sysinternals que menciona @Darin en los comentarios se encuentran en http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx

Process Monitor funcionará pero Process Explorer es una aplicación mucho mejor para esto. También es de Sysinternals, que ahora es propiedad de Microsoft. Ejecute Process Explorer como administrador y luego haga clic en el botón de búsqueda. Esto luego mostrará las aplicaciones y los hilos que están usando el archivo.