Libération de ressources de composant

Mise à jour : novembre 2007

Un composant client personnalisé tel qu'un comportement, contrôle ou composant de base doit parfois libérer des ressources avant sa suppression. Dans ce cas, vous pouvez substituer la méthode Sys.Component.dispose et libérer les ressources dans la méthode substituée. Cela permet de s'assurer que les ressources sont libérées juste avant la suppression du composant. Votre composant hérite la méthode dispose de la classe de base Sys.Component, Sys.UI.Behaviorou Sys.UI.Control, selon son type de base.

Dans la méthode dispose de votre composant, suivez ces étapes :

  • Supprimez ou réinitialisez toutes les ressources utilisées par le composant.

  • Arrêtez tous les processus que le composant peut mettre en file d'attente interne et désactivez toutes les fonctionnalités qui peuvent être appelées par le composant consommateur.

  • Appelez la méthode dispose de la classe de base.

    Remarque :

    Il est utile de fournir une propriété publique qui indique l'état actif du composant et qui déclenche un événement changé par propriété dans son accesseur set. Puis, dans la méthode dispose, définissez la propriété pour indiquer que le composant est désactivé. Cela permet à un développeur de pages de détecter la disponibilité du composant.

L'exemple suivant indique comment substituer la méthode dispose définie dans le prototype d'une classe de composant.

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');
}

Le composant dans cet exemple fournit une propriété enabled ayant la valeur false dans la méthode dispose. La méthode d'accesseur set de la propriété enabled déclenche un événement modifié par propriété qu'un développeur de pages peut lier afin de pouvoir tester la disponibilité du composant. Ce composant a également une méthode privée stopSimpleComponentProcess chargée d'arrêter tout processus en file d'attente qui pourrait déclencher un événement tick. La méthode désactive également des fonctionnalités qui peuvent être appelées par le composant consommateur. Comme dernière tâche, la méthode de base dispose est appelée par la méthode héritée Type.callBaseMethod.

Remarque :

Toutes les classes enregistrées héritent la méthode callBaseMethod. Pour plus d'informations, consultez Type.callBaseMethod, méthode.

Voir aussi

Tâches

Création de composants clients non visuels personnalisés

Concepts

Définition de propriétés de composants personnalisées et déclenchement d'événements PropertyChanged