ChangeMonitor.Dispose Methode

Definitie

Alle resources die door het huidige exemplaar van de ChangeMonitor klasse worden gebruikt, worden vrijgegeven.

Overloads

Name Description
Dispose()

Publiceert alle resources die worden gebruikt door het huidige exemplaar van de ChangeMonitor klasse.

Dispose(Boolean)

Alle beheerde en onbeheerde resources en eventuele verwijzingen naar het ChangeMonitor exemplaar worden vrijgegeven. Deze overbelasting moet worden geïmplementeerd door afgeleide wijzigingsmonitorklassen.

Opmerkingen

De Dispose methode wordt gebruikt om het ChangeMonitor exemplaar en de gerelateerde resources vrij te geven. De openbare Dispose methode wordt aangeroepen om het verwijderingsproces te coördineren met belangrijke levenscyclusgebeurtenissen van afgeleide wijzigingsmonitorklassen (zoals initialisatie) en om het ChangeMonitor exemplaar vrij te geven, zodat het exemplaar afval kan worden verzameld. De Dispose methode wordt geïmplementeerd door afgeleide wijzigingsmonitorklassen om hun beheerde en onbeheerde resources te verwijderen.

Dispose()

Publiceert alle resources die worden gebruikt door het huidige exemplaar van de ChangeMonitor klasse.

public:
 virtual void Dispose();
public void Dispose();
abstract member Dispose : unit -> unit
override this.Dispose : unit -> unit
Public Sub Dispose ()

Implementeringen

Uitzonderingen

Initialisatie is niet voltooid in de afgeleide klasse change-monitor die de basismethode Dispose() wordt genoemd.

Opmerkingen

De Dispose methode roept de Dispose methode van afgeleide klassen slechts één keer aan, de eerste keer dat deze wordt aangeroepen. Volgende aanroepen naar de Dispose methode hebben geen effect. Nadat de methode is aangeroepen, wordt de IsDisposed eigenschap ingesteld op true.

De Dispose overbelasting moet worden aangeroepen om een ChangeMonitor exemplaar te verwijderen. Hier volgen de regels voor het aanroepen van de verwijderingsmethode:

  • Voordat een item in de cache wordt ingevoegd, is het de verantwoordelijkheid van de aanroeper om een ChangeMonitor exemplaar te verwijderen.

  • Zodra het cache-item en de ChangeMonitor exemplaren die eraan zijn gekoppeld, worden doorgegeven aan een cache, moet de cache-implementeerfunctie die moet worden Dispose aangeroepen, zelfs als de invoegbewerking mislukt.

  • Nadat een item en de bijbehorende ChangeMonitor exemplaren zijn doorgegeven aan een cache, mag de aanroeper de afhankelijkheid niet verwijderen omdat wanneer de Dispose methode wordt aangeroepen, de aanroep wordt behandeld alsof de afhankelijkheid is gewijzigd. Hierdoor wordt de OnChanged methode automatisch aangeroepen.

  • Als u rekening houdt met deze regels, moet de Dispose methode op een van de volgende manieren worden aangeroepen:

    • Gebruikers moeten de overbelasting van de Dispose methode aanroepen als ze besluiten het afgeleide exemplaar van wijzigingsmonitor niet in een cache in te voegen.

    • De cache-implementatie is verantwoordelijk voor het aanroepen van de Dispose overbelasting als de implementatie probeert het exemplaar van wijzigingsmonitor in te voegen in een objectcache, maar de invoegbewerking mislukt. Wanneer de invoegpoging een uitzondering veroorzaakt, moet de cache-implementatie alle bijbehorende afhankelijkheden verwijderen.

    • Als de cachevermelding wordt verwijderd, moet de cache-implementatie ook de afhankelijkheid verwijderen.

De interne implementatie van de OnChanged methode roept automatisch de Dispose methode aan nadat deze een callback heeft aangeroepen die via de NotifyOnChanged methode is geregistreerd.

Note

Deze automatische verwijdering tijdens het activeren van de gebeurtenis vindt alleen plaats als de initialisatie van het ChangeMonitor exemplaar eerder is voltooid.

Wanneer de constructor van een afgeleide wijzigingsmonitor de InitializationComplete methode aanroept, wordt de wijzigingsmonitor automatisch verwijderd als de status van de wijzigingsmonitor al is gewijzigd (de status die wordt bewaakt toen de constructor nog actief was).InitializationComplete

Note

Gebruikers mogen de Dispose methode niet aanroepen. U kunt echter niet voorkomen dat gebruikers de methode aanroepen. Als dat het gebeurt, wordt de OnChanged methode daarom aangeroepen. In dat geval krijgt de cachevermelding een melding alsof de afhankelijkheid is gewijzigd.

Om te voorkomen dat afgeleide klassen de methode overschrijven Dispose , is de methode geen expliciete interface-implementatie.

Zie ook

Van toepassing op

Dispose(Boolean)

Alle beheerde en onbeheerde resources en eventuele verwijzingen naar het ChangeMonitor exemplaar worden vrijgegeven. Deze overbelasting moet worden geïmplementeerd door afgeleide wijzigingsmonitorklassen.

protected:
 abstract void Dispose(bool disposing);
protected abstract void Dispose(bool disposing);
abstract member Dispose : bool -> unit
Protected MustOverride Sub Dispose (disposing As Boolean)

Parameters

disposing
Boolean

true om beheerde en onbeheerde resources en eventuele verwijzingen naar een ChangeMonitor exemplaar vrij te geven; false om alleen onbeheerde resources vrij te geven. Wanneer false deze wordt doorgegeven, wordt de Dispose(Boolean) methode aangeroepen door een finalizer thread en zijn alle externe beheerde verwijzingen waarschijnlijk niet meer geldig omdat ze al garbagecollection zijn verzameld.

Opmerkingen

Wanneer de waarde de waarde disposing is true, worden alle beheerde en onbeheerde resources verwijderd en worden alle verwijzingen naar dit object vrijgegeven, zodat het afgeleide exemplaar van wijzigingsmonitor garbagecollection kan worden verzameld. Het is gegarandeerd dat de basismethode Dispose slechts één keer de geïmplementeerde Dispose methode aanroept.

Notities voor uitvoerders

Een wijzigingsmonitor moet de Dispose(Boolean) overbelasting implementeren om alle beheerde en onbeheerde resources vrij te geven wanneer de waarde disposing is true. De overbelasting van de Dispose(Boolean) methode met een disposing waarde wordt true slechts één keer aangeroepen, namelijk wanneer het exemplaar voor het eerst wordt verwijderd. Een wijzigingsmonitor mag de Dispose(Boolean) overbelasting niet rechtstreeks aanroepen. Een afgeleide wijzigingsmonitor kan de openbare parameterloze Dispose() methode op de basisklasse ChangeMonitor aanroepen.

Een wijzigingsmonitor kan ook een finalizer-methode implementeren. In dat geval kan de finalizer de Dispose(Boolean) methode aanroepen en deze doorgeven aan een disposing waarde van false. Dit is echter meestal niet nodig. Bewaking voor afhankelijkheidswijzigingen wordt doorgaans uitgevoerd door een service die een verwijzing naar het exemplaar van wijzigingsmonitor onderhoudt. De verwijzing voorkomt dat het exemplaar afval wordt verzameld en maakt daarom een finalizer-methode onnodig. Om geheugenlekken te voorkomen, verwijdert de OnChanged(Object) methode, wanneer een afhankelijkheid verandert, het exemplaar van de wijzigingsmonitor (tenzij initialisatie nog niet is voltooid).

Van toepassing op