SqlConnection 会被 GC 处理掉吗?
免责声明:我知道在处理非托管资源时应该实现IDisposable。代码的其余部分应该是确定性的,并执行 using (...) { } (相当于 try {} finally { Dispos…
如果在finalize()期间抛出异常会发生什么
如果finalize()执行过程中抛出异常会发生什么? 堆栈展开是否像平常一样?它会继续finalize()并忽略异常吗?它会停止 Finalize() 并继续 GC 对象吗?…
MySQL 在 Finalize 中抛出 NullReferenceException...您如何处理这个问题?
我在 64 位 Windows 上使用 MySQL 和 .Net 连接器。由于某种原因,Mysql 在 Finalize 中抛出 NullReferenceException。这是此处的问题,似乎是由于错…
如何对终结器进行单元测试?
我有以下类,它是 IDisposable 对象的装饰器(我省略了它添加的内容),它本身使用通用模式实现了 IDisposable : public class DisposableDecorator …
是否允许终结器调用其他托管类?方法?
我曾经非常确定答案是“否”,如 重写 Finalize 方法 和 对象.最终确定文档。 然而,当在 Reflector 中随机浏览 FileStream 时,我发现它实际上可以从…
C# 终结器抛出异常?
引自 MSDN: 如果 Finalize 或 Finalize 的重写引发异常,运行时将忽略该异常,终止 Finalize 方法,并继续终结过程。 但如果我有: ~Person() { thro…
为什么“Finalize 方法不应引用任何其他对象”?
我一直在思考为什么建议我们不应该在 Finalize 中释放托管资源。 如果您在 http://msdn.microsoft 上看到代码示例。 com/en-us/library/system.gc.sup…
当我们没有析构函数时为什么要调用 SuppressFinalize
我有几个问题无法得到正确的答案。 1)当我们没有析构函数时,为什么要在Dispose函数中调用SuppressFinalize。 2) Dispose 和 Finalize 用于在对象被…
CodeDom 的终结器?
是否可以将 Finalizer 添加到 CodeDom 生成的类(除了使用 CodeSnippetTypeMember 之外)? 我在 MSDN 上找不到任何有关它的信息。…
在我的析构函数中释放 Excel 对象
我正在使用 Microsoft.Interropt.Excel DLL 编写 Excel 类。 我完成了所有功能,但我的析构函数中有一个错误。 我想保存对我的文件的所有更改,并且我…
为什么 AppDomain.Unload() 在终结器中出错?
下面是一些示例代码: using System namespace UnloadFromFinalizer { class Program { static void Main(string[] args) { Program p = new Program(…