应用程序日志记录是通过自定义滚动平面文件日志库使用普通而无聊的日志文件完成的。为了降低对硬盘的写入访问量,日志事件会在以下情况下排队:a)达到最大队列项目限制或 b)经过一定时间。对于时间间隔方面,日志库运行一个定期刷新队列的线程。
现在,日志实例是静态可访问的、单例的和应用程序范围内的(在许多其他库中使用),有时会发生(尽管它不应该)开发人员忘记处理刷新线程,结果是,即使应用程序是“关闭”,线程继续运行,应用程序必须通过任务管理器终止,这远非理想。
所以我想知道:是否有可能在应用程序退出时自动关闭线程?我知道 BackgroundWorker
,Timer
和Threadpool
, 但是对于特定任务来说,这些是好的解决方案吗?还是更好地坚持“经典” Thread
?