我正在服务器应用程序中构建一个组件,该组件管理我的应用程序和外部服务之间的连接。我的组件检测到服务器何时不可用,启动后台线程直到服务可用,然后重新进入“工作”状态。
我的问题是,如果调用组件的进程在该线程运行时退出,则应用程序将在线程退出之前终止。基本上,如果此服务可用,我的应用程序将无法关闭。
我的问题:有没有办法检测应用程序是否试图关闭以便任何后台线程可以退出?我注意到 AppDomain 类上有几个事件,但我不确定它们会在什么条件下以及在什么环境中被触发。
因为这是一个低级组件,我不希望它知道它运行的环境的任何信息,我也不希望更高级别的组件需要告诉它它正在关闭。
这个组件将在 WCF 服务和 Windows 服务应用程序中使用,而且我还在 WinForm 客户端应用程序中进行测试。