Ich dachte, der GC würde Dispose schließlich aufrufen, wenn Ihr Programm nicht hätte, dass Sie Dispose() in Ihrem Programm aufrufen sollten, nur um die Bereinigung deterministisch zu machen.Ruft Garbage Collector Dispose() auf?
jedoch von meinem kleinen Testprogramm, kann ich überhaupt nicht genannt sehen Dispose bekommen ....
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");
}
}
// Ausgabe ist nur „Constructor“, versteht mich nicht „Entsorgen“ wie ich es erwarten würde. Was geht?
EDIT: Ja, ich weiß, ich sollte Dispose() aufrufen - ich verfolge das Standardmuster bei der Verwendung von Einwegobjekten. Meine Frage ergibt sich, weil ich versuche, ein Leck in jemandes Code zu finden, der C++ verwaltet (eine andere Ebene der Komplexität, die das gute Thema eines anderen Threads wäre).
Diese Frage ist ein Duplikat von [http://stackoverflow.com/questions/45036/will-the-garbage-collector-call-idisposable-dispose-for finden -me] (http://stackoverflow.com/questions/45036/will-the-garbage-collector-call-idisposable-dispose-for-me). –