none
关于C#“父子窗体”性能问题 RRS feed

  • 问题

  • 系统资源释放问题:C#编的WinForm程序,多个窗体。只有在主窗体关闭时,Application才会退出;里面单独打开小的计算分析模块要占用很高的CPU使用率,只关闭小的计算分析模块,资源根本不会释放,CPU使用率都100%了。总不能每次都写关闭整个程序吧?怎么解决?求告知!
    2016年8月25日 5:53

答案

  • 没有逻辑作参考,比较难回答这个问题。

    可以用ANTS Performance Profiler 8 分析一下,就知道是哪里的代码需要优化。

    看是否需要增加资源释放代码

    protected void ReleaseResources()
    
    {
    
      this.btnPrintRouting.Click -= new System.EventHandler(this.btnPrintRouting_Click);
    
      this.btnPrintMaterialsList.Click -= new System.EventHandler(this.btnPrintMaterialsList_Click);
    
      this.btnSortMaterials.Click -= new System.EventHandler(this.btnSortMaterials_Click);          
    
    }
    
    
    
    protected override void Dispose(bool disposing)
    
    {
    
       if (disposing && components != null)
    
       {
    
            components.Dispose();
    
       }
    
       ReleaseResources();
    
       base.Dispose(disposing);
    
    }


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月25日 6:38

全部回复

  • 你每一个小窗体是一个WinForm吗?你是怎么编写和释放程序的呢?

    ASP.NET Forum
    StackOverFlow
    FreeRice Donate
    Issues to report
    Free Tech Books Search and Download

    2016年8月25日 6:38
    版主
  • 没有逻辑作参考,比较难回答这个问题。

    可以用ANTS Performance Profiler 8 分析一下,就知道是哪里的代码需要优化。

    看是否需要增加资源释放代码

    protected void ReleaseResources()
    
    {
    
      this.btnPrintRouting.Click -= new System.EventHandler(this.btnPrintRouting_Click);
    
      this.btnPrintMaterialsList.Click -= new System.EventHandler(this.btnPrintMaterialsList_Click);
    
      this.btnSortMaterials.Click -= new System.EventHandler(this.btnSortMaterials_Click);          
    
    }
    
    
    
    protected override void Dispose(bool disposing)
    
    {
    
       if (disposing && components != null)
    
       {
    
            components.Dispose();
    
       }
    
       ReleaseResources();
    
       base.Dispose(disposing);
    
    }


    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月25日 6:38
  • 一个解决方案下 9 个类库,N多个窗体,dispose释放不了。里面好多窗体都是添加现有项以前封装好的.exe文件
    2016年8月25日 8:06
  • 谢谢。那软件靠谱吗? 几十万行代码呢。。。
    2016年8月25日 8:07
  • 非常精准,我们几百万的项目都是用这个定位性能问题。

    专注于.NET ERP/CRM开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    2016年8月25日 8:13
  • OK ! 谢谢华哥!
    2016年8月25日 8:57