写了一个c#类,该类在退出程序时发生异常:ObjectDisposedException 本帖最后由 zhoujiehg 于 2010-03-16 20:54:04 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 原因应该是在执行m_Graphics.ReleaseHdc(m_HDC);时,m_Form引用的实例已经释放了。试试如下办法:1、为m_Form的Disposing事件加一个处理方法,方法内进行 DeleteObject(m_CFI); m_Graphics.ReleaseHdc(m_HDC);2、删除析构器。C#中的析构器与C++的有着根本的不同,详情可参与MSDN或《C#技术揭秘》(Inside C#) http://msdn.microsoft.com/zh-cn/library/system.objectdisposedexception.aspxObjectDisposedException 类对已释放的对象执行操作时所引发的异常。Measure类在执行析构方法时m_CFI和m_HDC所代表的对象已经销毁了,你这个时候再去释放资源就会报这个异常了.建议改成Dispose方法,在要退出程序时显示调用来释放资源. Public void Dispose() { DeleteObject(m_CFI); m_Graphics.ReleaseHdc(m_HDC); } 如果在对象被释放后调用其他方法,则可能会引发 ObjectDisposedExceptionpublic void Dispose() { Dispose(true); GC.SuppressFinalize(this); } public void DoSomething() { if (disposed) throw new ObjectDisposedException("不能使用被释放的资源"); } GridView1_RowDataBound事件,索引超出范围。很奇怪的问题,我明明做了判断的。 C# 获取所有邮件,包括垃圾箱 有做过条码打印机开发的请进!TEC条码打印机接口API文档 执行程序不报错,但是登陆进总是连接不上数据库 拼图游戏中怎么用鼠标图片移动固定的距离? 如何提高逐字节比较文件的性能? 请问:如何在C#中点击一个按钮后,弹出“数据连接属性”对话筐? C#编写 如何为richTextBox装上textBox的右键菜单. <span id=xxx></span>在工具箱中哪个是? 关于SQL Assistant 链接数据库的问题 创建窗口句柄出错
1、为m_Form的Disposing事件加一个处理方法,方法内进行
DeleteObject(m_CFI);
m_Graphics.ReleaseHdc(m_HDC);2、删除析构器。C#中的析构器与C++的有着根本的不同,详情可参与MSDN或《C#技术揭秘》(Inside C#)
对已释放的对象执行操作时所引发的异常。Measure类在执行析构方法时m_CFI和m_HDC所代表的对象已经销毁了,你这个时候再去释放资源就会报这个异常了.建议改成Dispose方法,在要退出程序时显示调用来释放资源. Public void Dispose()
{
DeleteObject(m_CFI);
m_Graphics.ReleaseHdc(m_HDC);
}
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this);
}
public void DoSomething()
{
if (disposed) throw new ObjectDisposedException("不能使用被释放的资源");
}