Освобождение ресурсов компонентов

Visual Studio 2010

Обновлен: Ноябрь 2007

Иногда перед удалением пользовательских клиентских компонентов, таких как компоненты поведения, элементы управления или базовые компоненты, необходимо освободить используемые ими ресурсы. В этом случае можно переопределить метод Sys.Component.dispose и освободить ресурсы в переопределенном методе. Это обеспечит освобождение ресурсов непосредственно перед удалением компонента. Компонент наследует метод dispose от класса Sys.Component, Sys.UI.Behavior или Sys.UI.Control в зависимости от базового типа компонента.

В методе dispose компонента выполните описанные ниже действия.

  • Ликвидируйте или сбросьте все ресурсы, которые используются компонентом.

  • Остановите все процессы, которые могли быть поставлены в очередь компонентом, и отключите все функции, которые могли быть вызваны потребителями компонента.

  • Вызовите метод dispose базового класса.

    Bb398784.alert_note(ru-ru,VS.100).gifПримечание.

    Это может оказаться полезным для создания общего свойства, которое указывает, что компонент включен, и создает событие изменения свойства в его методе доступа set. Затем задайте в методе dispose свойство, которое указывает, что компонент отключен. Это позволяет разработчику страницы определять доступность компонента.

В примере ниже показано, как переопределить метод dispose, который определен в прототипе класса компонента.

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

В этом примере компонент имеет свойство enabled, которому в методе dispose присвоено значение false. В методе доступа set свойства enabled создается событие изменения состояния, к которому может привязаться разработчик, и которое позволяет ему проверять доступность компонента. Этот компонент также содержит частный метод _stopSimpleComponentProcess, на который возлагается задача по остановке всех процессов в очереди, способных инициировать событие tick. Этот метод также отключает функции, которые мог бы вызвать потребитель компонента. Напоследок вызывается метод dispose путем вызова метода Type.callBaseMethod, наследником которого он является.

Bb398784.alert_note(ru-ru,VS.100).gifПримечание.

Все зарегистрированные классы наследуют метод callBaseMethod. Дополнительные сведения см. в разделе Метод Type.callBaseMethod.

Показ: