问题标签 [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.
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 拉到一个对象中,然后使用实体框架将记录插入到数据库中。
所有方法的操作都与此类似。
c# - 处理对象异常
在浏览网络上的资源时,我遇到了很多样板代码,如下所示:
假设我们有一些public class CustomObject: IDisposable
,它有一堆方法。
现在,这些方法中的每一个都有默认的健全性检查:
但是(由于IDisposable
接口实现)每个方法都添加了以下检查:
现在 -这是一种常见的做法吗?我应该开始重新设计我的旧一次性课程并实施这些检查吗?
c# - c# XNA 无法访问已处置的对象。对象名称:“Texture2D”。但我没有处理它
错误:无法访问已处置的对象。对象名称:'Texture2D'
为什么会这样!在我的整个代码中都没有告诉它处理!这发生在我的 XNA c# 游戏中的 LoadContent() 上。我得到这个错误的代码,我突出了Texture2D是否发生了这种情况。
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 块都没有捕获异常。
有任何想法吗?
更新 - 添加完整课程:
c# - 打开然后关闭并再次打开新表单时出现未处理的异常
我收到ObjectDisposedException was unhandled
消息Cannot access a disposed object.
当在我的课程开始时初始化此子表单时,会发生这种情况MyForm myForm = new MyForm();
,然后将一些文本添加到该表单的文本框中,myForm.txtBox.AppendText("Text");
然后使用带有代码的按钮打开我的新表单myForm.Show();
。现在,当我的工作完成后,我可以关闭表单。现在,当我想再次显示数据时,我得到了那个异常。
我想将文本框的内容保留在我的新表单中,但似乎有一个问题是我没有处理其中的所有内容。
如何避免这种情况,以便在按下按钮时随时查看新表单内容?
c# - LINQ to SQL,覆盖处置
我通过将一个已经打开的连接传递给它来创建一个 LINQ to SQL DataContext。这可行,除了我现在到处泄漏连接,因为虽然我在完成后处理了 DataContext,但连接永远不会关闭。我明白这是设计使然。
我想做的是确保一旦我的 DataContext 被释放,我的连接就会关闭。
我试图覆盖 DataContext 上的 Dispose,如下所示:
但是,这不起作用......我得到一个 ObjectDisposedException。设置断点告诉我,此时一切都已处理完毕!
我发现的唯一解决方法是在 DataContext 上隐藏 Dispose 方法。像这样:
但是,这对我来说有点难闻的代码味道。在这里进行的推荐方式是什么?
完整的代码示例(DataClasses1DataContext 是一个空的 DataContext):
.net - System.ObjectDisposedException:无法访问已处置的对象 - 为什么会发生?
我收到堆栈跟踪的错误...
产生此错误的代码是....
当我只是切换 .show 和 .close 方法的顺序时它不会出错
你能告诉我为什么在第一种情况下它会出错,为什么在第二种情况下没有?
c# - 打开封闭的表格
我想知道如何使用 this.Close() 再次打开关闭的表单。每次我尝试使用 Mainmenu.Show() 打开关闭的表单时,异常都会引发错误“无法访问已处置的对象。对象名称:Mainmenu”。
我怎样才能再次打开它?
c# - 无法访问已处置的对象 - wcf 客户端
我有一个遇到问题的 WCF 客户端。
我不时收到此异常:Cannot access a disposed object
. 这就是我打开连接的方式:
如您所见,我每次都在关闭并重新打开连接。你认为可能是什么问题?
堆:
c# - .NET CF 中的 FileStream 和 ObjectDisposedException
我对许多文件路径运行此方法,问题是每当无法使用 File.Open 访问文件时(因为它被另一个进程使用)我得到:
在以下行:
我很少得到
这是我想要的例外。那么为什么对象大部分时间都被处理掉了呢?注意:我首先在 using 语句中添加了 FileStream 行,但删除了它,因为我认为这可能已经释放了该对象。但问题依然存在。
编辑:使用 Compact Framework,它没有ReadAllBytes
.