我有一段这样的代码:GC如何在.NET中收集静态成员中的资源?
Class Program
{
static StreamReader sr = null;
static int var=0;
static Program()
{
sr = new StreamReader("input.txt")
}
~Program()
{
sr.Dispose();
}
static void main(string args[])
{
//do something with input here
}
}
这可能不是一个很好的做法,但我只是想用这个例子来问解构和GC是如何工作的。
我的问题是:Will〜Program()会在非确定的时间被调用,或者在这种情况下根本不会被调用。如果解构器不会被调用,那么GC如何收集非托管资源和管理资源。