我想如果你的程序沒有,但是你應該在程序中調用Dispose()來讓清理確定性,那麼GC最終會調用Dispose。垃圾收集器調用Dispose()?
不過,從我的小測試程序,我沒有看到Dispose已獲取調用所有....
public class Test : IDisposable
{
static void Main(string[] args)
{
Test s = new Test();
s = null;
GC.Collect();
Console.ReadLine();
}
public Test()
{
Console.WriteLine("Constructor");
}
public void Dispose()
{
Console.WriteLine("Dispose");
}
}
//輸出僅僅是「構造」,我不明白「處置」如我所料。這是怎麼回事?
編輯:是的,我知道我應該調用Dispose() - 我使用一次性對象時遵循標準模式。我的問題出現是因爲我試圖追蹤某人的代碼中的泄漏,這是一個託管C++(另一個複雜的層次,可能是另一個線程的主題)。
此問題是[http://stackoverflow.com/questions/45036/will-the-garbage-collector-call-idisposable-dispose-for -Me(http://stackoverflow.com/questions/45036/will-the-garbage-collector-call-idisposable-dispose-for-me)。 –