Compartilhar via


BaseForm.Dispose(Boolean) Método

Definição

Libera os recursos não gerenciados usados pelo BaseForm e opcionalmente libera os recursos gerenciados.

protected:
 override void Dispose(bool disposing);
protected override void Dispose (bool disposing);
override this.Dispose : bool -> unit
Protected Overrides Sub Dispose (disposing As Boolean)

Parâmetros

disposing
Boolean

true para liberar recursos gerenciados e não gerenciados; false para liberar apenas recursos não gerenciados.

Exemplos

O exemplo a seguir implementa o método Dispose.

protected override void Dispose(bool disposing) {

    // NOTE: Dispose gets called multiple times. 
    // Check for a non-null ServiceProvider.
    if (disposing && (ServiceProvider != null)) {

        persistWindowVals();

        if (_managementFrame != null) {
            _managementFrame.Dispose();
            _managementFrame = null;
        }

        IServiceContainer serviceContainer = (IServiceContainer)
            GetService(typeof(IServiceContainer));
        Debug.Assert(serviceContainer != null);

        if (serviceContainer != null) {
            serviceContainer.RemoveService(typeof(IPropertyEditingService));
            serviceContainer.RemoveService(typeof(IManagementUIService));
        }

        if (_uiService != null) {
            ((IDisposable)_uiService).Dispose();
            _uiService = null;
        }
    }

    base.Dispose(disposing);
}

Comentários

Classes que substituem esse método devem chamar a sobrecarga pai Dispose .

Este método é chamado pelo método público Dispose() e pelo método Finalize. Dispose() invoca o método Dispose(Boolean) protegido com o parâmetro disposing definido como true. Finalize invoca Dispose com disposing definido como false.

Quando o disposing parâmetro é true, esse método libera todos os recursos mantidos por quaisquer objetos gerenciados referenciados por ele BaseForm . Este método invoca o método Dispose() de cada objeto referenciado.

Notas aos Herdeiros

Dispose pode ser chamado várias vezes por outros objetos. Ao substituir Dispose(Boolean) , tome cuidado para não referenciar objetos que tenham sido descartados anteriormente em uma chamada anterior para Dispose. Para obter mais informações sobre como implementar Dispose(Boolean), consulte Implementando um método dispose.

Para obter mais informações sobre Dispose e Finalize(), consulte Limpando recursos não gerenciados e Substituindo o método Finalize.

Aplica-se a