日期:2014-05-20  浏览次数:21643 次

有时间的达人们查一下错误根源,顶着有分!!!!!
在visual   studio   2005中   执行下面的程序:
                      编译可以通过,运行也不出错。
                      只是一直运行2-3个小时就报错:(是在频繁的调用代码的情况下)
                      未处理的“System.ComponentModel.Win32Exception”类型的异常出现在   System.Windows.Forms.dll   中。

其他信息:   创建窗口句柄时出错。

                      代码:
                        MainForm.ControlAll.Controls.Clear();          
                        MainForm.ControlAll.SuspendLayout();
                        NIT   nit   =   new   NIT();
                        nit.Width   =   MainForm.ControlAll.Width;
                        nit.Height   =   MainForm.ControlAll.Height;
                        MainForm.ControlAll.Controls.Add(nit);       ←//   出错位置
                        MainForm.NotePanelAll.Text   =   "NIT ";
                        MainForm.ControlAll.ResumeLayout();
                        MainForm.ControlAll.Parent.ResumeLayout();

                        MainForm.ControlAll声明的一个静态的容器。
                        nit是一个用户控件。

                          先谢了。


------解决方案--------------------
从这些好像看不出什么问题,会不会NIT里面内存管理有问题?比如释放不干净?
------解决方案--------------------
帮顶
------解决方案--------------------
看不出来问题。有没有inner Exception?还有把Stacktrace贴出来吧
------解决方案--------------------
关注
------解决方案--------------------
up
------解决方案--------------------
是不是内存不够用了?把虚拟内存设大一些试试。
------解决方案--------------------

------解决方案--------------------
up
------解决方案--------------------
up
------解决方案--------------------
MainForm.ControlAll.Controls.Add(nit);
最好不要用静态的,建议用代理写一个MainForm的自定义事件,这个进程向MainForm发送一个事件,通知MainForm来clear容器
还有,最好可以监控一下你的内存,有可能是内存问题
如果不是太紧要的话,试试断点调试状态下运行程序,