【发布时间】:2020-03-30 10:03:36
【问题描述】:
我正在编写一个库(一个 .NET Framework DLL)。
该库可用于各种应用程序:WinForm 应用程序、WPF 应用程序、ASP.NET 应用程序、Windows 服务……甚至是非托管应用程序(通过 COM 互操作)。
这个库创建了一个后台线程来执行一些维护任务。
挑战如下:当主应用程序关闭时,我的后台线程需要检测到这一点并进行一些清理以正常退出(关闭数据库连接等)。
我的后台线程如何检测(以与主机应用程序无关的方式)其进程即将终止,以便它可以开始其清理任务?
先前的研究:
- 有多种方法可以检测到应用程序正在关闭特定 UI 框架(例如,Application.ApplicationExit 用于 WinForms,Application.Exit 用于 WPF)。显然,这不适合泛型库。
【问题讨论】:
标签: c# .net multithreading process