1
|
AidanO · 技术社区 · 14 年前 |
![]() |
1
5
webbrowser.document的类型是htmldocument。它没有Dispose()方法。 更可能的异常源是WebBrowser本身。它有一个isDisposed属性,您可以使用它。但是,我强烈建议您在代码中查找bug,而不是应用该Bandaid。也许是流浪汉 使用 声明。 |
![]() |
2
10
等一下。你问这个问题的事实表明你的设计有一个根本的缺陷。 为什么你要抓住一个可能已经被释放的对象? 这就是问题所在。你不应该 需要 对“我如何知道它是否已被处理”问题的回答。如果您引用了该对象,那么它就没有被释放。如果你已经处理了它,那么你应该扔掉所有对它的引用。 相反,如果其他人有一个引用并且不知道您已经处理了它,那么 你不应该把它处理掉 ,仍在使用对象的代码有责任处理它。 你需要的是 合同 它描述了谁拥有这个对象,以及何时处理它,然后实现那个契约。如果您这样做,那么您将知道对象是否已被处理,并且异常将指示一个违反合同的bug。 这是我以前写的一篇关于一个相关问题的文章: http://blogs.msdn.com/b/ericlippert/archive/2008/09/08/high-maintenance.aspx |
![]() |
3
0
当WebBrowser实例不再有效时,将引发ObjectDisposedException。因此,检查文档仍将导致抛出ObjectDisposedException,因为WebBrowser实例已被释放…无论哪种方法,您都应该在代码中包含catch,以确保在检查和返回之间未释放该对象… |
![]() |
A B · C#Excel自动调整列避免长文本时出错 7 月前 |
![]() |
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 7 月前 |
![]() |
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 7 月前 |
|
Sei · Avalonia/WPF将路由器传递到控制模板 7 月前 |