我正在运行一些Windows应用程序,它工作了几天然后停止工作没有错误.现在我在事件查看器中发现了这个错误.也许有人知道什么会导致这个错误?
事件类型:错误
事件源:.NET Runtime 2.0错误报告事件
类别:无
事件ID:5000
日期:2010年10月30日
时间:21:58:57
用户:N/A.
电脑:SERVER-PROD
描述:EventType clr20r3,P1 program.exe,P2 1.0.0.0,P3 4cca7ed1,P4 mscorlib,P5 2.0.0.0,P6 4be90358,P7 1164,P8 0,P9 system.objectdisposedexception,P10 NIL.
Mar*_*all 20
ObjectDisposedException是:
在已处置对象上执行操作时引发的异常.(来源)
换句话说,如果实现了实现IDisposable接口的类的实例 - 通过调用Dispose()或隐式显式,例如,如果它出现在using语句中或其他方式 - 任何尝试调用对象上的方法都会引发上面的例外.
与大多数调试问题一样,如果不实际查看代码并在调试器中运行它,很难说是什么导致了您的问题.你说在运行几天后程序崩溃了ObjectDisposedException.根据我的经验,这通常意味着两件事之一:
我的建议是在调试器中启动程序,并使其保持运行直到抛出异常.然后你可以回到这里并向我们提供相关代码,堆栈跟踪,调试输出等.
有东西正在访问已被处置的对象.如果您在表单上有多线程,通常会发生这种情况.启动backgroundworker/thread/timer,然后处理表单.当backgroundworker/thread/timer尝试以某种方式更新表单时,会出现此异常.