2

我们都知道一次性物品用完就应该扔掉。问题是:如果我有一个一次性对象(例如数据库上下文)在 Windows 桌面应用程序(例如 WPF 或 WinForms)的整个生命周期中使用:我是否应该在应用程序关闭事件中处理该对象(为什么,何时,什么时候不)?

4

1 回答 1

0

通常,您应该避免在应用程序的整个生命周期中使用一次性对象。许多对象,例如数据库上下文,应该在那个范围内使用。

但是,如果您确实需要这样做,则取决于对象是否“正确”实现了 IDisposable 模式。如果一次性对象实现了终结器,那么即使您不调用它,它也会在应用程序结束时被释放Dispose。如果对象没有实现终结器,您将需要在应用程序关闭时处理它,除非它会泄漏的资源不是问题。例如,如果它会泄漏将在进程结束时关闭的内存,则无需释放它,如果它只是取消订阅事件,则无需运行等。如果您不确定在方法中究竟发布了什么,Dispose那么你应该是安全的,无论如何都要调用它。

于 2013-02-11T17:16:51.257 回答