我有一段這樣的代碼: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如何收集非託管資源和管理資源。