首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >System.ObjectDisposedException

System.ObjectDisposedException
EN

Stack Overflow用户
提问于 2010-11-01 12:10:46
回答 2查看 83.7K关注 0票数 19

我正在运行一些windows应用程序,它工作了几天,然后停止工作,没有错误。现在我在事件查看器中发现了这个错误。也许有人知道是什么导致了这个错误?

事件类型:错误

事件来源:.NET运行时2.0错误报告事件

类别:无

事件ID: 5000

日期: 30.10.2010

时间: 21:58:57

用户: N/A

计算机:服务器-PROD

描述: EventType clr20r3,P1 program.exe,P2 1.0.0.0,P3 4cca7ed 1,P4 mscorlib,P5 2.0.0.0,P6 4be90358,P7 1164,P8 0,P9 system.objectdisposedexception,P10 NIL。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-01 12:20:57

ObjectDisposedException是:

:在对已释放对象执行操作时引发的异常。(source)

换句话说,如果一个实现IDisposable接口的类的实例被释放--或者显式地调用Dispose(),或者隐式地(比如它出现在using语句中) --那么在对象上调用方法的任何尝试都会引发上述异常。

与大多数调试问题一样,如果不实际查看代码并在调试器中运行代码,则很难说出是什么导致了您的问题。您说程序在运行了几天之后就与ObjectDisposedException一起崩溃了。根据我的经验,这通常意味着两件事之一:

  1. 有一些非常不寻常的代码路径,当采取这些路径时,总是会导致程序中线程之间的
  2. race condition崩溃。因此,崩溃似乎是不可预测的,很难再现

我给您的建议是在调试器中启动程序,并一直运行到抛出异常为止。然后您可以回到这里,并向我们提供相关的代码,堆栈跟踪,调试输出等。

票数 24
EN

Stack Overflow用户

发布于 2010-11-01 12:27:09

正在访问已释放的对象。如果窗体上有多线程,通常会发生这种情况。启动后台工作者/线程/计时器,然后释放表单。当后台工作者/线程/计时器试图以某种方式更新表单时,您将得到此异常。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4068726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档