【发布时间】:2012-07-16 18:32:17
【问题描述】:
我的一个班级在应用程序执行期间收集统计信息,我想在应用程序完成后将此统计信息存储到磁盘。我从来没有在我的程序中销毁这个类,所以我尝试将日志存储到这样的文件中:
~Strategy()
{
foreach(var item in statisticItems)
{
log.WriteLine(item.Text); // log is AutoFlush
}
}
但是我没有看到我希望看到的日志,而且在调用析构函数时我无法在调试器时刻“捕捉”。
问题:
- 为什么在调试器中我无法捕捉到调用析构函数的时刻?程序结束时不是每个对象都必须调用析构函数吗?
- 我应该用什么来记录我的东西?
【问题讨论】:
-
您是否会使用停止按钮关闭调试器?
-
@Blindy 不,我只是关闭窗口
-
Strategy是否已实例化?它是一个静态类(或者你只使用它的静态方法)?给我们更多信息,用例,你可以的任何东西。您可以针对您的问题忽略框架中的错误,它是您的代码中的某些内容,我们只能在这一点上猜测。 -
@Blindy 这是否意味着必须始终调用析构函数并且建议使用析构函数来做我做的事情?是的
Strategy很满足,我用它的实例方法,它的控制台应用程序。 -
@Blindy:不,这不取决于你。在析构函数中引用任何托管对象绝不是一个好主意。
标签: c#