¿Cómo puedo hacer algo que capture todas las excepciones 'no manejadas' en una aplicación WinForms?

asta ahora, solo puse un bloque try / catch alrededor de laApplication.Run en elProgram.cs punto de entrada al programa. Esto captura todas las excepciones lo suficientemente bien en modo de depuración, pero cuando ejecuto el programa sin el modo de depuración, las excepciones ya no se manejan. Me sale el cuadro de excepción no controlada.

No quiero que esto suceda. Quiero que se capturen todas las excepciones cuando se ejecuta en modo sin depuración. El programa tiene múltiples hilos y preferiblemente todas las excepciones de ellos quedan atrapadas por el mismo controlador; Quiero registrar excepciones en la base de datos. ¿Alguien tiene algún consejo sobre cómo hacer esto?

Respuestas a la pregunta(4)

Su respuesta a la pregunta