我正在运行一些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。
答案 0 :(得分:20)
ObjectDisposedException是:
对已处置对象执行操作时引发的异常。 (source)
换句话说,如果实现了实现IDisposable接口的类的实例 - 通过调用Dispose()
显式地或隐式地,例如它出现在using
语句中或否则 - 任何在对象上调用方法的尝试都会引发上面的异常。
与大多数调试问题一样,如果没有实际查看代码并在调试器中运行它,很难说是什么导致了您的问题。你说在运行几天后程序崩溃了ObjectDisposedException。根据我的经验,这通常意味着两件事之一:
我的建议是在调试器中启动程序,并保持运行直到抛出异常。然后你可以回到这里并向我们提供相关代码,堆栈跟踪,调试输出等。
答案 1 :(得分:5)
正在访问已处置的对象。如果您在表单上有多线程,通常会发生这种情况。启动backgroundworker / thread / timer,然后处理表单。当backgroundworker / thread / timer尝试以某种方式更新表单时,会出现此异常。