Ich habe diese Artikel auf Dispose Pattern und Dispose Implementation gelesen. Meine Frage ist, wenn wir die Methode virtual dispose (bool) vom Finalizer aufrufen, warum wir nur false an die Methode übergeben und die nicht verwaltete Ressource freigeben? Wenn wir wahr werden, was wird es brechen?Entsorgen Muster Verwendung
Auch auch wir die IDisposble Schnittstelle implementiert haben, stützt sie sich nach wie vor auf dem Entwickler entweder den Code in den mit Block wickeln oder Dispose() explizit, damit die Methode Dispose() aufgerufen werden, nennen. Was ist das Addon der IDisposble-Schnittstelle, wenn der Entwickler nicht vorsichtig genug ist?
Der zweite Link implementiert jedoch die Freigabe der verwalteten Quelle, wenn die Bedingung wahr ist, einschließlich des Abhängens der Ereignisse. Wenn der Finalizer in diesem Fall die dispose-Methode aufruft und false an sie gibt, wird das Ereignis nicht ausgehakt und führt zu einem Speicherverlust, nicht wahr? – Helic
Das Dispose-Muster ist nur eine Richtlinie. Jemand hat vielleicht einen guten Grund, etwas anderes zu tun, aber ich persönlich würde die MS-Richtlinie zu Dispose befolgen. –