我使用一个方法Open()开启一个Mdi子窗体:Open(new MdiForm1());然后用另一个方法关闭所有的子窗体DisposeAll(this);但我发现,当我重复着两个操作时,内存占用越来越大。就好像没有Disposed过,而是不停地new。请问这样是否正常?如何才能正确地释放掉窗体?

解决方案 »

  1.   


    GC.Collect(); 
    GC.WaitForPendingFinalizers(); private delegate void DelegateCloseForm(); 
            private void CloseForm() 
            { 
                if (this.InvokeRequired) 
                { 
                    this.BeginInvoke(new DelegateCloseForm(CloseForm)); 
                } 
                else 
                { 
                    this.Close(); 
                    this.Dispose(); 
                } 
            }