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
Si queres preguntar al usuario para salir o no:
Código C#:
Ver originalif (DialogResult.Yes == MessageBox.Show("¿Desea salir de la aplicación?.",
"Titulo",
MessageBoxButtons.YesNo
, MessageBoxIcon.Question))
{
Application.ExitThread();
}
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
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