如果我需要一个一次性物品在我的控制台应用程序结束之前一直存在怎么办?

What to do if I need a disposable object to stay present until my console application has ended?

我已经阅读了几个问这个问题的线程,但它们涉及 Windows Forms 应用程序。表单应用程序具有在关闭时调用的函数,这使得在应用程序终止时处理对象变得容易。我有一个基于事件的控制台应用程序,它将在系统后台持续 运行,类似于服务。结束程序的唯一方法是通过任务管理器结束进程。我通过在 main() 中的所有逻辑之后调用 Console.Read 并隐藏控制台使其无限期运行来实现此目的。

我有一个 Timer 对象,我想确保它被处理掉,但由于我的程序没有正式的出口,我不知道在哪里处理它。因为只有一个 class 依赖于它,所以让操作系统处理它是否可以?我读到覆盖 finalize() 函数是危险的,并且不想做任何太棘手的事情。在很长一段时间内,我的应用程序 运行 只会有一个实例(直到系统关闭或直到我推出更新)。

由于您正在终止进程,因此没有任何代码可以处理计时器,但您不必担心。

进程停止后,其内存中的所有内容 space 都会消失。该进程在单独的虚拟内存 space 中运行,当进程停止时,整个内存 space 将被删除。