Dispose() protected méthode

Executes in two distinct scenarios. 1. If disposing is true, the method has been called directly or indirectly by a user's code via the Dispose method. Both managed and unmanaged resources can be disposed. 2. If disposing is false, the method has been called by the runtime from inside the finalizer and you should not reference (access) other managed objects, as they already have been garbage collected. Only unmanaged resources can be disposed.
If any exceptions are thrown, that is fine. If the method is being done in a finalizer, it will be ignored. If it is thrown by client code calling Dispose, it needs to be handled by fixing the bug. If subclasses override this method, they should call the base implementation.
protected Dispose ( bool disposing ) : void
disposing bool
Résultat void
Exemple #1
0
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            System.Diagnostics.Debug.WriteLineIf(!disposing, "****** Missing Dispose() call for " + GetType().Name + ". ****** ");
            // Must not be run more than once.
            if (IsDisposed)
            {
                return;
            }

            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
                if (m_view != null && !Controls.Contains(m_view))
                {
                    m_view.Dispose();
                }
                if (m_detailView != null && !Controls.Contains(m_detailView))
                {
                    m_detailView.Dispose();
                }
            }
            m_sel        = null;
            m_cache      = null;
            m_view       = null;
            m_detailView = null;
            if (m_cdaTemp != null)
            {
                m_cdaTemp.ClearAllData();
                Marshal.ReleaseComObject(m_cdaTemp);
                m_cdaTemp = null;
            }

            base.Dispose(disposing);
        }