2012-06-20 16 views
12

que tienen una aplicación WPF, después de cerrar la aplicación app.exe *32 su proceso todavía se está ejecutando en la lista de procesos en el administrador de tareas.proceso de aplicación no se cerrará

Necesito esto para cerrar como cuando hago una edición de mi código me sale el siguiente error -

Unable to copy file "obj\x86\Release\frontEndTest.exe" to "bin\Release\app.exe". The process cannot access the file 'bin\Release\app.exe' because it is being used by another process. 

Soy consciente de que este tipo de pregunta se ha hecho antes here.

Sin embargo, el solución no funcionó para mí, cambiando mi Assembly.cs a -

[assembly: AssemblyVersion("2.0.0")] 
[assembly: AssemblyFileVersion("2.0.0")] 

pensé que tal vez si tuviera que encontrar el Window closed evento y puttting algo así como - Process.GetCurrentProcess().Kill(); en caso de modo que cuando un usuario cierra la aplicación desde el botón rojo 'x' en la parte superior derecha de la forma que esto quizá matar el proceso?

+2

Lo más probable es que tenga algunos subprocesos aún ejecutándose después de que se cierre la ventana principal. ¿Utiliza cualquier 'BackgroundWorker's o' Thread's? Si es así, tendrá que señalarles de alguna manera que terminen. – Jon

+0

Hay dos categorías de hilos: Fondo y sin fondo. Los hilos de fondo terminarán automáticamente cuando muera el proceso principal; hilos no de fondo mantendrán vivo el proceso principal. ¿Quizás tiene uno o más hilos que deberían ser hilos de fondo? –

+0

Veo, ¿cómo puedo saber qué hilos se están ejecutando y cómo terminarlos? – Ebikeneser

Respuesta

41

Por lo que su proceso está todavía vivo después de haber cierra el sistema. Esto generalmente significa que tienes un hilo que lo mantiene vivo. Así es como puedes rastrearlo.

En primer lugar, se adhieren a ella en el depurador:

                                enter image description here

enter image description here

                                        enter image description here

Ahora abra la lista de temas:

        enter image description here

doble clic en cada hilo que se ve aquí:

enter image description here

Y usted será llevado a lo que el hilo está haciendo actualmente:

                                enter image description here

Eso, allí mismo, es lo que la prevención de la aplicación desde el cierre. Uno tendría que salir de ese bucle para que la aplicación salga (o, como alternativa, establecer Thread.IsBackground en true).

+0

Esta es una respuesta muy útil, y ahora puedo ver los hilos, sin embargo, la fuente no está disponible, ya que está en su aplicación. – Ebikeneser

+0

@Jambo Pero puedes ver el hilo que lo mantiene vivo, ¿verdad? Eso tiene un nombre? ¿Cuál es la categoría? Es posible que desee publicar una captura de pantalla de sus hilos en su pregunta. –

+0

¿Podemos hacer esto sin Visual Studio? – user960567

10

Environment.Exit (0);

Terminates this process and gives the underlying operating system the specified exit code.  

0 se devuelve al completar con éxito.

Cuestiones relacionadas