Что?
Я разрабатываю консольное приложение, которое должно работать 24/7 No Matter What
Существует ли способ остановить многопоточное приложение от взорванного каким-то необработанным исключением, происходящим в "некоторых нить где-нибудь"?
Почему?
Пожалуйста, воздержитесь от уроков, таких как "вы должны управлять всеми своими исключениями", "этого никогда не должно быть" и т.д. У меня есть свои причины: мы находимся в тестовом развертывании, и нам нужно сохранить это выполнение, исключить журналы и снова перезапустить все потоки. Если происходит что-либо незапланированное, и возникает необработанное исключение, оно должно быть обнаружено, и какой-либо метод вызывается для перезапуска всех потоков (атомарность невозможна из-за конструкции уровня)
При этом я знаю, что было бы невозможно перезапустить приложение из "внутри", если оно произошло из-за и UnhandledException (которое я уже реализовал).
До сих пор я использовал Quartz.net FileScan Job и Flag File для обнаружения таких вещей и перезапуска приложения извне. Но это звучит для меня неловко. Я хотел бы найти что-то более чистое и менее быстрое и грязное.
DownVoting/Sniping Warning: Я ЗНАЮ, что это НЕ МОЖЕТ быть "как есть".
Пожалуйста, будьте креативными/полезными, а не критически критикуйте и подумайте об этом как о "Открытом вопросе"