C#写的一个WinForm程序,在运行一段时间后会报"内存不足"或"应用程序生成了一个无法处理的异常",请问有可能是什么问题引起的?

解决方案 »

  1.   

    我在程序里已经用 try catch 进行异常捕获,但是没效果System.OutOfMemoryException: 内存不足。
       at FT.Util.UI.UILink.ShowDialog(String UIType, Object[] data)
       at FT.Util.UI.UILink.ShowDialog(String Type)
       at FT.Util.UI.FormMain.ShowDialog(String dialogName)
       at FT.Hosp.AnaApp.FormMain.BarMain_ItemClick(Object sender, EventArgs e)
       at DevComponents.DotNetBar.DotNetBarManager.9D(BaseItem 2KR)
       at DevComponents.DotNetBar.BaseItem.RaiseClick()
       at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
       at DevComponents.DotNetBar.PopupItem.InternalMouseUp(MouseEventArgs objArg)
       at DevComponents.DotNetBar.ButtonItem.InternalMouseUp(MouseEventArgs objArg)
       at DevComponents.DotNetBar.BaseItem.InternalMouseUp(MouseEventArgs objArg)
       at DevComponents.DotNetBar.GenericItemContainer.InternalMouseUp(MouseEventArgs objArg)
       at DevComponents.DotNetBar.Bar.OnMouseUp(MouseEventArgs e)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at DevComponents.DotNetBar.Bar.WndProc(Message& m)
       at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
       at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      

  2.   

    建议在实例化多类的时候,在最后强制垃圾回收GC.Collect;没用的东西最好及时清理,这样会一直吃内存和CPU的
      

  3.   

    大概你调用 了些API没有及时清除掉
      

  4.   

    我没有调用API,是一个带有频繁的图像浏览的控件较多的录入界面,每次切换图片和保存时都进行了 GC.Collect(),但是问题依旧。
      

  5.   

    如果你的窗体里有timer的话你检查下看看代码有问题没有.
      

  6.   

    Object[] data部分,可能没有回收,你可以强制回收。
    //dispose resource
    public void Dispose()
    {
    Dispose(true);
    GC.SuppressFinalize(true);
    }