Estoy escribiendo una aplicación GUI.¿Cómo cierro correctamente una aplicación C# que ha creado varios subprocesos?
La aplicación está abriendo varios hilos durante su vida útil. Uno de los subprocesos es el manejo de eventos que pueden provenir de otras aplicaciones, por lo que está esperando en un ciclo while (verdadero) para el evento que nunca se termina.
El usuario puede cerrar la aplicación en cualquier minuto. Quiero cerrar todos los hilos que la aplicación principal había abierto.
Estoy usando Process.GetCurrentProcess(). Kill(); para lidiar con este problema en este momento.
¿Es esta una buena solución? Si no es así, ¿por qué y cuál es la forma correcta de tratar este problema, cómo cerrar todos los hilos abiertos por la aplicación principal?
Debe evitar el trabajo inactivo de 'while (true)'. Al menos agregue un 'Sleep (100)' para darle un poco de espacio a su CPU. Mire algunos libros gratuitos como http://www.albahari.com/threading/ o http://www.csharpcourse.com/ para obtener detalles sobre cómo mantener adecuadamente un hilo vivo sin hacer un trabajo inactivo. – ja72
El ciclo while (verdadero) está esperando los eventos. Como tiene un waitOne de bloqueo(), no está usando brutalmente mi CPU. – Alex