finalizer

finalizer

文章 0 浏览 8

未调用终结器

我有一个 C# 类,我想在处理我的类时正确关闭一些通信端口。但是,当我退出程序时,永远不会调用终结器。这是为什么?我做错了什么吗? 我正在手动调…

鹿港小镇 2024-10-20 19:09:19 4 0

如果从未调用终结器的性能损失

我有一堂带有终结器的课程。但由于我总是调用 Dispose() 并且 Dispose() 正在调用 GC.SupressFinalize(this),我认为我的对象实际上从未使其进入终结…

一身软味 2024-10-15 15:09:22 6 0

带析构函数的 IDisposable:需要线程安全实现?

这几乎只是我需要确保的,我做对了: 我们有一个实现 IDisposal 模式的大型资源类。它应该(根据设计)以一种使其能够被多次调用的方式实现(当然,即…

回眸一遍 2024-10-12 12:09:36 10 0

我可以检测对象是否调用了GC.SuppressFinalize吗?

有没有办法检测对象是否调用了GC.SuppressFinalize? 我有一个看起来像这样的对象(为了清楚起见,省略了完整的 Dispose 模式): public class Resou…

浅笑轻吟梦一曲 2024-10-11 00:44:33 10 0

我应该在 IDisposable 和 Finalize 上实现 GC.SupressFinalize 吗?

我的新客户处的代码审查清单包含以下内容 - 实现 Dispose 和 Finalize 的类应该在 Dispose 实现中调用 GC.SupressFinalize 为什么? 难道它不应该被理…

梦罢 2024-10-10 16:05:57 11 0

使用析构函数/终结器昂贵吗?

我正忙着对非确定性破坏感到困惑。在回答另一个问题时,我得到了析构函数/终结器的建议(其中我认为在 C# 中也是一样的,即名为 ~classname()) 的函数…

忘你却要生生世世 2024-10-05 03:55:16 13 0

AppDomain.Unload 会抛出 Finalizer 吗?

这是到目前为止的故事,我有一个工作程序,它使用 AppDomain 来执行某些任务。该域的设置和拆除成本很高。因此,我为工作线程创建了一个 WeakReferenc…

情痴 2024-09-30 04:33:32 8 0

在 C# 中使用终结器的好示例

当我阅读一些有关 C# 内存管理的文章时,我对 Finalizer 方法感到困惑。 有很多复杂的规则与之相关。 例如,没有人知道何时会调用终结器,即使 ctor …

浮生面具三千个 2024-09-30 03:24:55 14 0

终结器和 IDisposable

根据文档(MSDN:链接),很明显,在实现终结器时应该使用 IDisposable 模式。 但是,如果您实现 IDisposable(以便提供处理对象的确定性方法),并且…

我ぃ本無心為│何有愛 2024-09-26 08:38:17 12 0

在 C# 中自动删除 COM 事件处理程序

我有一个独立的 .exe COM 服务器和一个简单的 C# 测试程序,该程序启动服务器的实例并随后立即关闭它。就像魅力一样。但是,如果我关闭 C# 程序本身,…

北斗星光 2024-09-24 14:26:41 8 0

使用 Dispose() 或终结器来清理托管线程?

假设我有一个 C++0x 中的消息泵类,如下所示(注意,SynchronizedQueue 是函数 的队列,当您在队列上调用 receive() 并且它是空的时,它会阻塞调用线…

小矜持 2024-09-19 18:57:12 8 0

SqlConnection 会被 GC 处理掉吗?

免责声明:我知道在处理非托管资源时应该实现IDisposable。代码的其余部分应该是确定性的,并执行 using (...) { } (相当于 try {} finally { Dispos…

友谊不毕业 2024-09-17 10:10:00 12 0

Finalize 块出现问题

我正在阅读约书亚·布洛赫(Joshua Bloch)写的《有效的 Java 编程》。在这本书中,他建议不要使用“finalize”块,因为它不能保证被执行。任何人都可…

捶死心动 2024-09-13 17:08:16 7 0

终结器访问托管内容

我很清楚终结器通常用于控制非托管资源。在什么情况下终结器可以处理托管终结器? 我的理解是,存在于终结器队列中将阻止收集任何对象或由此强烈引用…

旧瑾黎汐 2024-09-11 10:39:39 8 0

如果在finalize()期间抛出异常会发生什么

如果finalize()执行过程中抛出异常会发生什么? 堆栈展开是否像平常一样?它会继续finalize()并忽略异常吗?它会停止 Finalize() 并继续 GC 对象吗?…

绝影如岚 2024-09-05 18:37:55 9 0
更多

推荐作者

alipaysp_snBf0MSZIv

文章 0 评论 0

梦断已成空

文章 0 评论 0

瞎闹

文章 0 评论 0

寄意

文章 0 评论 0

似梦非梦

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文