Freigeben von Komponentenressourcen

Aktualisiert: November 2007

Ihre benutzerdefinierte Clientkomponente, z. B. eine Verhaltens-, Steuerelement- oder Basiskomponente, muss unter Umständen Ressourcen freigeben, bevor die Komponente entfernt werden kann. Ist dies der Fall, können Sie die Sys.Component.dispose-Methode überschreiben und die Ressourcen in der überschriebenen Methode freigeben. Dadurch wird sichergestellt, dass die Ressourcen sofort freigegeben werden, bevor die Komponente entfernt wird. Die Komponente erbt die dispose-Methode je nach dem Basistyp der Komponente von der Basisklasse Sys.Component, Sys.UI.Behavior oder Sys.UI.Control.

Führen Sie in der dispose-Methode der Komponente die folgenden Schritte aus:

  • Geben Sie alle von der Komponente verwendeten Ressourcen frei, oder setzen Sie die Ressourcen zurück.

  • Beenden Sie alle Prozesse, die die Komponente möglicherweise in einer internen Warteschlange verwaltet, und deaktivieren Sie alle Funktionen, die eventuell vom Komponentenconsumer aufgerufen werden.

  • Rufen Sie die dispose-Methode der Basisklasse auf.

    Hinweis:

    Es ist sinnvoll, eine öffentliche Eigenschaft bereitzustellen, die angibt, dass die Komponente aktiviert ist, und ein durch eine geänderte Eigenschaft ausgelöstes Ereignis in ihrem set-Accessor auslöst. Legen Sie die Eigenschaft anschließend in der dispose-Methode fest, um anzugeben, dass die Komponente deaktiviert ist. So kann ein Seitenentwickler die Verfügbarkeit der Komponente erkennen.

Das folgende Beispiel zeigt, wie die dispose-Methode überschrieben wird, die im Prototyp einer Komponentenklasse definiert ist.

dispose: function() {
    // Call set_enabled so the property-changed event is raised 
    //  in order to notify any attached listeners.
    this.set_enabled(false);

    // Stop any component processes so that 
    // they are not called after disposal.
    this._stopSimpleComponentProcesses();

    // Call the base dispose method.
    Samples.SimpleComponent.callBaseMethod(this, 'dispose');
}

Die Komponente in diesem Beispiel stellt eine enabled-Eigenschaft bereit, die in der dispose-Methode auf false festgelegt wird. Die set-Accessormethode der enabled-Eigenschaft löst ein durch eine geänderte Eigenschaft ausgelöstes Ereignis aus, für das ein Seitenentwickler eine Bindung herstellen kann und das dem Entwickler die Möglichkeit gibt, die Verfügbarkeit der Komponente zu testen. Diese Komponente enthält zudem eine private _stopSimpleComponentProcess-Methode, die Prozesse in Warteschlangen beendet, durch die weiterhin ein tick-Ereignis ausgelöst werden könnte. Die Methode deaktiviert darüber hinaus alle Funktionen, die vom Komponentenconsumer aufgerufen werden könnten. Zum Schluss wird die dispose-Basismethode aufgerufen, indem die geerbte Type.callBaseMethod-Methode aufgerufen wird.

Hinweis:

Alle registrierten Klassen erben die callBaseMethod-Methode. Weitere Informationen finden Sie unter Type.callBaseMethod-Methode.

Siehe auch

Aufgaben

Erstellen von benutzerdefinierten nicht visuellen Clientkomponenten

Konzepte

Definieren von benutzerdefinierten Komponenteneigenschaften und Auslösen von PropertyChanged-Ereignissen