Fui a través de un problema similar en mi software, pero por desgracia sólo hacer las roscas para funcionar en segundo plano no resolvió el problema. De hecho, mientras que el hilo trae de vuelta los datos (el software principal es impulsado por los datos) y si cierro la aplicación, resulta en un error de Windows, dando lugar a un mensaje de depuración.
Así que lo que realmente trabajó para mí:
Paso 1: hizo todos los hilos se ejecutan en segundo plano, como
Thread aThread = new Thread(MethodName);
aThread.IsBackground = true; //<-- Set the thread to work in background
aThread.Start();
Paso 2: En la acción de cierre de la forma llamada/aplicación el método Environment.Exit, como
Environment.Exit(Environment.ExitCode);
Esto mantiene la memoria administrada pe de manera perfecta, sin pérdida de memoria.
Espero que esto ayude.
@monkey_boys lugar en el que se utiliza en las discusiones ¿tu codigo? – Kiril