Я создаю компонент в серверном приложении, которое управляет соединениями между моим приложением и внешней службой. Мой компонент обнаруживает, когда сервер недоступен, начинает фоновый поток до тех пор, пока услуга не станет доступной, а затем снова войдет в «рабочее» состояние.Как определить закрытие приложения?
Моя проблема заключается в том, что если процесс, вызывающий компонент, завершается во время работы этого потока, приложение не будет завершено до тех пор, пока поток не выйдет. В принципе, мое приложение не может отключиться, если эта услуга доступна.
Мой вопрос: есть ли способ определить, пытается ли приложение закрыть, чтобы любые фоновые потоки могли выйти? Я заметил пару событий в классе AppDomain, но я не уверен, при каких условиях и в каких средах они будут уволены.
Поскольку это низкоуровневый компонент, я не хочу, чтобы он ничего знал о среде, в которой он работает, и я не хочу, чтобы компонент более высокого уровня должен был сказать, что он выключается.
Этот компонент будет использоваться как в службе WCF, так и в приложении Windows Service, и я также выполняю тесты из клиентского приложения WinForm.