问题描述
有关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾。**************异常文本**************System.InvalidOperationException:集合在枚举数实例化后进行了修改。在System.Collections.Specialized.ListDictionary.NodeEnumerator.MoveNext()在System.Windows.Forms.Layout.DefaultLayout.ApplyCachedBounds(IArrangedElementcontainer)在System.Windows.Forms.Layout.DefaultLayout.xLayout(IArrangedElementcontainer,BooleanmeasureOnly,Size&preferredSize)在System.Windows.Forms.Layout.DefaultLayout.LayoutCore(IArrangedElementcontainer,LayoutEventArgsargs)在System.Windows.Forms.Layout.LayoutEngine.Layout(Objectcontainer,LayoutEventArgslayoutEventArgs)在System.Windows.Forms.Control.OnLayout(LayoutEventArgslevent)在System.Windows.Forms.ScrollableControl.OnLayout(LayoutEventArgslevent)在System.Windows.Forms.Form.OnLayout(LayoutEventArgslevent)在System.Windows.Forms.Control.PerformLayout(LayoutEventArgsargs)在System.Windows.Forms.Control.System.Windows.Forms.Layout.IArrangedElement.PerformLayout(IArrangedElementaffectedElement,StringaffectedProperty)在System.Windows.Forms.Layout.LayoutTransaction.DoLayout(IArrangedElementelementToLayout,IArrangedElementelementCausingLayout,Stringproperty)在System.Windows.Forms.Control.OnResize(EventArgse)在System.Windows.Forms.Form.OnResize(EventArgse)在System.Windows.Forms.Control.OnSizeChanged(EventArgse)在System.Windows.Forms.Control.UpdateBounds(Int32x,Int32y,Int32width,Int32height,Int32clientWidth,Int32clientHeight)在System.Windows.Forms.Control.UpdateBounds()在System.Windows.Forms.Control.WndProc(Message&m)在System.Windows.Forms.ScrollableControl.WndProc(Message&m)在System.Windows.Forms.ContainerControl.WndProc(Message&m)在System.Windows.Forms.Form.WndProc(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&m)在System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&m)在System.Windows.Forms.NativeWindow.Callback(IntPtrhWnd,Int32msg,IntPtrwparam,IntPtrlparam)**************已加载的程序集**************mscorlib程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------TZC.Offic智能办公系统程序集版本:1.0.6017.18852Win32版本:1.0.6017.18852基本代码:file:///D:/OA_运行版-64位-Win%208/同致诚OA-64位Win%208运行(深圳)/同致诚OA-64位Win%208运行(深圳)/TZC.Offic智能办公系统.exe----------------------------------------System.Windows.Forms程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll----------------------------------------System程序集版本:2.0.0.0Win32版本:2.0.50727.5484(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll----------------------------------------System.Drawing程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll----------------------------------------System.Configuration程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll----------------------------------------System.Xml程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll----------------------------------------ApplicationUpdate程序集版本:1.0.0.0Win32版本:1.0.0.0基本代码:file:///D:/OA_运行版-64位-Win%208/同致诚OA-64位Win%208运行(深圳)/同致诚OA-64位Win%208运行(深圳)/ApplicationUpdate.DLL----------------------------------------mscorlib.resources程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll----------------------------------------WeifenLuo.WinFormsUI.Docking程序集版本:1.0.0.0Win32版本:1.0.0.0基本代码:file:///D:/OA_运行版-64位-Win%208/同致诚OA-64位Win%208运行(深圳)/同致诚OA-64位Win%208运行(深圳)/WeifenLuo.WinFormsUI.Docking.DLL----------------------------------------AxInterop.SHDocVw程序集版本:1.1.0.0Win32版本:1.1.0.0基本代码:file:///D:/OA_运行版-64位-Win%208/同致诚OA-64位Win%208运行(深圳)/同致诚OA-64位Win%208运行(深圳)/AxInterop.SHDocVw.DLL----------------------------------------System.Windows.Forms.resources程序集版本:2.0.0.0Win32版本:2.0.50727.5420(Win7SP1.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.Windows.Forms.resources.dll----------------------------------------Interop.SHDocVw程序集版本:1.1.0.0Win32版本:1.1.0.0基本代码:file:///D:/OA_运行版-64位-Win%208/同致诚OA-64位Win%208运行(深圳)/同致诚OA-64位Win%208运行(深圳)/Interop.SHDocVw.DLL----------------------------------------Accessibility程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll----------------------------------------Microsoft.mshtml程序集版本:7.0.3300.0Win32版本:7.0.3300.0基本代码:file:///C:/windows/assembly/GAC/Microsoft.mshtml/7.0.3300.0__b03f5f7f11d50a3a/Microsoft.mshtml.dll----------------------------------------System.Management程序集版本:2.0.0.0Win32版本:2.0.50727.5483(Win7SP1GDR.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.Management/2.0.0.0__b03f5f7f11d50a3a/System.Management.dll----------------------------------------System.resources程序集版本:2.0.0.0Win32版本:2.0.50727.5420(Win7SP1.050727-5400)基本代码:file:///C:/windows/assembly/GAC_MSIL/System.resources/2.0.0.0_zh-CHS_b77a5c561934e089/System.resources.dll----------------------------------------**************JIT调试**************要启用实时(JIT)调试,该应用程序或计算机的.config文件(machine.config)的system.windows.forms节中必须设置jitDebugging值。编译应用程序时还必须启用调试。例如:<configuration><system.windows.formsjitDebugging="true"/></configuration>启用JIT调试后,任何无法处理的异常都将被发送到在此计算机上注册的JIT调试器,而不是由此对话框处理。问题所在:系统debug没有问题,但是平时用又有问题,xp系统的没有问题,其他系统都有问题。只要窗口最小化再打开就会出现这个,继续又可以使用,怎么消除。
解决方案
解决方案二:
你有个集合被修改了
解决方案三:
这种问题的产生一般是两个线程去操作同一个资源,而其中第二个线程又没有持有这个资源导致的出错。解决办法要么是获取持有这个资源的对象,要么把修改封装,放到当前线程中去执行。
解决方案四:
你是不是在遍历Dictionary的时候对Dictionary的内容进行了修改。C#为了防止出现不可控的异常,一般字典和列表在遍历的时候是不允许修改的。我看异常信息中你有调用MoveNext,所以猜测你应该是在遍历,同时删除或者增加了Dictionary的节点。
解决方案五:
把所有foreach改成for,尽量避免使用foreach,因为在循环中集合大小有变化foreach是不会管的,用for就没问题。应该能帮到你
解决方案六:
追加,foreach循环前会先计算枚举数,就是集合的Count属性(或者Length属性),即循环次数,然后就开始埋头循环工作,中间删掉了某个元素导致集合大小变了它是不管的,依然按照循环开始前的枚举数工作,这样就可能导致你贴出来的异常
解决方案七:
foreach的时候不要进行删除操作常用做法是foreach的时候把需要删除的项记录下来,在遍历完成后,根据记录的索引进行删除。
解决方案八:
程序跑的时候修改了不改修改的资源