问题标签 [objectdisposedexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
14223 浏览

c# - ObjectDisposedException 未处理:安全句柄已在程序结束时关闭

我有一个 .NET 4 C# 控制台应用程序。它从我们的 IBM i 中提取数据并将其发送到我们的互联网 SQL Server。它工作完美,直到结束,我收到以下错误:

System.ObjectDisposedException 未处理 Message=Safe handle has been closed Source=mscorlib ObjectName="" StackTrace: at System.Runtime.InteropServices.SafeHandle.DangerousRelease() at System.Threading.RegisteredWaitHandleSafe.Finalize() InnerException:

我的程序代码是:

在控制台中,我看到了开始时间和结束时间。所以我知道最后一行确实被执行了。我忘记或不做我应该做的事情是什么?

更新: Sync* 方法将数据从 IBM 拉到一个对象中,然后使用实体框架将记录插入到数据库中。

所有方法的操作都与此类似。

0 投票
3 回答
1467 浏览

c# - 处理对象异常

在浏览网络上的资源时,我遇到了很多样板代码,如下所示:

假设我们有一些public class CustomObject: IDisposable,它有一堆方法。

现在,这些方法中的每一个都有默认的健全性检查:

但是(由于IDisposable接口实现)每个方法都添加了以下检查:

现在 -这是一种常见的做法吗?我应该开始重新设计我的旧一次性课程并实施这些检查吗?

0 投票
1 回答
1681 浏览

c# - c# XNA 无法访问已处置的对象。对象名称:“Texture2D”。但我没有处理它

错误:无法访问已处置的对象。对象名称:'Texture2D'

为什么会这样!在我的整个代码中都没有告诉它处理!这发生在我的 XNA c# 游戏中的 LoadContent() 上。我得到这个错误的代码,我突出了Texture2D是否发生了这种情况。

0 投票
3 回答
9666 浏览

c# - 在 .Net 2.0 中关闭 SerialPort 时出现 ObjectDisposedException

我有一个 C# windows 窗体应用程序,它通过 COM 端口与 USB 加密狗进行通信。我正在使用 .Net 2.0 中的 SerialPort 类进行通信,并且串行端口对象在应用程序的整个生命周期内都是开放的。应用程序向设备发送命令,也可以从设备接收未经请求的数据。

关闭表单时会出现我的问题 - 尝试关闭 COM 端口时,我得到(随机,不幸)ObjectDisposedException。这是 Windows 堆栈跟踪:

我从有类似问题的人那里找到了帖子,并尝试了解决方法 [这里][1]

[1]:http: //zachsaw.blogspot.com/2010/07/net-serialport-woes.html虽然这是针对 IOException 并没有阻止问题。

我的 Close() 代码如下:

我的日志显示执行永远不会超出尝试关闭 SerialPort 的 BaseStream(这是在第一个try块中),所以我尝试删除这一行,但仍然定期抛出异常 - 第二个try块中的日志记录出现然后异常发生。两个 catch 块都没有捕获异常。

有任何想法吗?

更新 - 添加完整课程:

0 投票
3 回答
1243 浏览

c# - 打开然后关闭并再次打开新表单时出现未处理的异常

我收到ObjectDisposedException was unhandled消息Cannot access a disposed object.

当在我的课程开始时初始化此子表单时,会发生这种情况MyForm myForm = new MyForm();,然后将一些文本添加到该表单的文本框中,myForm.txtBox.AppendText("Text");然后使用带有代码的按钮打开我的新表单myForm.Show();。现在,当我的工作完成后,我可以关闭表单。现在,当我想再次显示数据时,我得到了那个异常。

我想将文本框的内容保留在我的新表单中,但似乎有一个问题是我没有处理其中的所有内容。

如何避免这种情况,以便在按下按钮时随时查看新表单内容?

0 投票
1 回答
1385 浏览

c# - LINQ to SQL,覆盖处置

我通过将一个已经打开的连接传递给它来创建一个 LINQ to SQL DataContext。这可行,除了我现在到处泄漏连接,因为虽然我在完成后处理了 DataContext,但连接永远不会关闭。我明白这是设计使然。

我想做的是确保一旦我的 DataContext 被释放,我的连接就会关闭。

我试图覆盖 DataContext 上的 Dispose,如下所示:

但是,这不起作用......我得到一个 ObjectDisposedException。设置断点告诉我,此时一切都已处理完毕!

我发现的唯一解决方法是在 DataContext 上隐藏 Dispose 方法。像这样:

但是,这对我来说有点难闻的代码味道。在这里进行的推荐方式是什么?

完整的代码示例(DataClasses1DataContext 是一个空的 DataContext):

0 投票
1 回答
4972 浏览

.net - System.ObjectDisposedException:无法访问已处置的对象 - 为什么会发生?

我收到堆栈跟踪的错误...

产生此错误的代码是....

当我只是切换 .show 和 .close 方法的顺序时它不会出错

你能告诉我为什么在第一种情况下它会出错,为什么在第二种情况下没有?

0 投票
4 回答
14599 浏览

c# - 打开封闭的表格

我想知道如何使用 this.Close() 再次打开关闭的表单。每次我尝试使用 Mainmenu.Show() 打开关闭的表单时,异常都会引发错误“无法访问已处置的对象。对象名称:Mainmenu”。

我怎样才能再次打开它?

0 投票
1 回答
17849 浏览

c# - 无法访问已处置的对象 - wcf 客户端

我有一个遇到问题的 WCF 客户端。
我不时收到此异常:Cannot access a disposed object. 这就是我打开连接的方式:

如您所见,我每次都在关闭并重新打开连接。你认为可能是什么问题?

堆:

0 投票
3 回答
5135 浏览

c# - .NET CF 中的 FileStream 和 ObjectDisposedException

我对许多文件路径运行此方法,问题是每当无法使用 File.Open 访问文件时(因为它被另一个进程使用)我得到:

在以下行:

我很少得到

这是我想要的例外。那么为什么对象大部分时间都被处理掉了呢?注意:我首先在 using 语句中添加了 FileStream 行,但删除了它,因为我认为这可能已经释放了该对象。但问题依然存在。

编辑:使用 Compact Framework,它没有ReadAllBytes.