Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema al cerrar un Windows Form

Estas en el tema de Problema al cerrar un Windows Form en el foro de .NET en Foros del Web. Hola! Tengo un problemilla que me lleva trastocando un tiempo. Al cerrar un Windows Form, el proceso asociado a él sigue corriendo. Es decir, consultando ...
  #1 (permalink)  
Antiguo 16/11/2012, 04:07
Avatar de JOvelleiro  
Fecha de Ingreso: febrero-2012
Ubicación: Valladolid
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema al cerrar un Windows Form

Hola!

Tengo un problemilla que me lleva trastocando un tiempo. Al cerrar un Windows Form, el proceso asociado a él sigue corriendo. Es decir, consultando el Adminiostrador de tareas de Windows, cierro la ventana de mi "Programa.exe", desapareciendo de la pestaña de Aplicaciones, pero sigue apareciendo "Programa.exe" en la pestaña de Procesos, aunque la ventana se haya cerrado correctamente.

Esto me causa bastantes problemas en cuanto a memoria y acceso a archivos, porque cuando vuelvo a ejecutar mi programa tengo 2 procesos iguales corriendo a la vez e intentando acceder a los mismos datos de disco duro, base de datos, etc.

Espero alguien me pueda dar una idea. Muchas gracias!!
  #2 (permalink)  
Antiguo 16/11/2012, 06:59
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Problema al cerrar un Windows Form

Hola.

Depronto tu programa maneja hilos o procesos en segundo plano?

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 16/11/2012, 09:45
Avatar de JOvelleiro  
Fecha de Ingreso: febrero-2012
Ubicación: Valladolid
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al cerrar un Windows Form

Si, tiene 2 hilos corriendo continuamente. Al cerrar la ventana del programa esos hilos no se matan? He estado mirando un poco en Visual Studio, que es con lo que lo he hecho, y no he encontrado donde poder introducir una rutina para finalizar el programa al pulsar el botón cerrar la ventana...

Gracias jhonwilliams! ;)
  #4 (permalink)  
Antiguo 16/11/2012, 09:51
Avatar de JOvelleiro  
Fecha de Ingreso: febrero-2012
Ubicación: Valladolid
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al cerrar un Windows Form

Si, tiene 2 hilos corriendo continuamente. Al cerrar la ventana del programa esos hilos no se matan? He estado mirando un poco en Visual Studio, que es con lo que lo he hecho, y no he encontrado donde poder introducir una rutina para finalizar el programa al pulsar el botón cerrar la ventana...

Gracias jhonwilliams! ;)
  #5 (permalink)  
Antiguo 16/11/2012, 10:06
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Respuesta: Problema al cerrar un Windows Form

Para cerrar la aplicacion lo haces desde un menu? o desde la X del formulario?

Si es con un boton o menu pon esta linea en el evento click del boton/menu

Código C#:
Ver original
  1. Application.ExitThread();

Si queres preguntar al usuario para salir o no:

Código C#:
Ver original
  1. if (DialogResult.Yes == MessageBox.Show("¿Desea salir de la aplicación?.",
  2.                 "Titulo",
  3.                 MessageBoxButtons.YesNo
  4.                 , MessageBoxIcon.Question))
  5.             {
  6.                 Application.ExitThread();
  7.             }

El Application.ExitThread(); creo que cierra el hilo principal (la aplicacion) y todos los hilos que se lanzaron.

Si lo anterior no funciona agrega esta linea en el evento FormClosing del formulario, para forzar el Garbage Collertor a refrescar la memoria

Código C#:
Ver original
  1. GC.Collect();

Como administras los procesos que corren el segundo plano?, usas el BackgroundWorker?

Nota:
Las lineas de codigo fueron sacadas de una aplicacion en la cual el formulario principal tiene un subproceso que consulta mensajes a una base de datos X tiempo y en la cual ese proceso lo administro con el BackGroundWroker.



Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #6 (permalink)  
Antiguo 16/11/2012, 10:31
Avatar de JOvelleiro  
Fecha de Ingreso: febrero-2012
Ubicación: Valladolid
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al cerrar un Windows Form

Los hilos los lanzo de esta manera:

Código:
ParameterizedThreadStart hilo1 = new ParameterizedThreadStart(tipoHilo);
                        thread1 = new Thread(hilo1);
                        thread1.Start(parametro);
Voy a echarle un vistazo a lo que me has puesto ;)
  #7 (permalink)  
Antiguo 16/11/2012, 10:50
Avatar de JOvelleiro  
Fecha de Ingreso: febrero-2012
Ubicación: Valladolid
Mensajes: 25
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Problema al cerrar un Windows Form

Parece que está!!!

He colocado tanto el GC.Collect() como el Application.ExitThread(), aparte de cerrar los 2 hilos que yo creaba por separado, en el FormClosing.

En principio parece que va, así que muchas gracias jhonwilliams!!! ;)

Etiquetas: cerrar, windows, formulario, aplicaciones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:12.